2014-11-05 94 views
0

我有几个复选框在我的应用程序不同的颜色。 现在,当我应用材质设计主题复选框的没有样式将其颜色更改为“colorControlActivated”时,复选框的样式保持不变。Android棒棒糖更改复选框颜色

另外我想改变我的其他复选框的颜色没有drawables文件。

我试图设置风格不同的“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控件一样的代码。

现在做某人如何设置不同的颜色复选框的无需绘制?

谢谢!

回答

0

这对我来说伎俩。注意android命名空间。

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

android:colorControlActivated需要API级别21 – 2015-01-08 09:29:56

+0

正确。我认为这是你的目标平台。似乎Google错过了支持4.x平台,因为使用'colorControlActivated'似乎对复选框没有任何影响(正如你注意到的那样)。似乎像drawables是目前唯一的方法,如果你想改变颜色(最终看看http://stackoverflow.com/a/27185692/409661)。 – 2015-01-10 14:59:54

0

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

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

你也可以做旧的API本使用appCompatCheckbox V7:

<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>