2014-11-05 70 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>