【问题标题】:Android lollipop change checkbox colorAndroid棒棒糖更改复选框颜色
【发布时间】:2014-11-05 09:14:58
【问题描述】:

我的应用程序中几乎没有不同颜色的复选框。 现在,当我应用 Material Design 主题复选框时,没有样式的复选框将其颜色更改为“colorControlActivated”,而有样式的复选框保持不变。

我还想在没有可绘制文件的情况下更改其他复选框的颜色。

我尝试用不同的“colorControlActivated”颜色设置样式

<style name="CheckBox.Custom" parent="@style/Theme.Material.Blue">
    <item name="colorControlActivated">@color/custom_color</item>
</style>

但它不起作用,我也尝试创建如下复选框:

ContextThemeWrapper ctw= new ContextThemeWrapper(getActivity(), R.style.CheckBox_Info);
Checkbox cb = new CheckBox(ctw);

颜色没有改变。

使用 SwitchCompat 控件的相同代码。

现在有人如何在没有可绘制对象的情况下为复选框设置不同的颜色?

谢谢!

【问题讨论】:

    标签: android android-5.0-lollipop android-checkbox


    【解决方案1】:

    这对我有用。注意android 命名空间。

    <style name="CheckBox.Custom" parent="@style/Theme.Material.Blue">
        <item name="android:colorControlActivated">@color/custom_color</item>
    </style>
    

    【讨论】:

    • android:colorControlActivated 需要 API 级别 21
    • 正确。我认为那是您的目标平台。谷歌似乎错过了在这方面支持 4.x 平台,因为使用 colorControlActivated 似乎对复选框没有任何影响(如您所见)。如果你想改变颜色,似乎drawables是目前唯一的方法(最终看看stackoverflow.com/a/27185692/409661)。
    【解决方案2】:

    您可以直接在 xml 中设置颜色。对框使用 buttonTint:(从 API 级别 23 开始)

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:buttonTint="@color/CHECK_COLOR" />
    

    您也可以将 appCompatCheckbox v7 用于较旧的 API:

    <android.support.v7.widget.AppCompatCheckBox 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        app:buttonTint="@color/COLOR_HERE" /> 
    

    在您的 styles.xml 文件中添加这一行:

    <style>
        <item name="android:colorAccent">@color/custom_color</item>
    </style>
    

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 2017-10-16
      • 2016-04-03
      • 1970-01-01
      相关资源
      最近更新 更多