2014-11-05 3 views
0

У меня есть несколько флажков в моем приложении с разными цветами. Теперь, когда я применил тему дизайна материалов, без стиля изменил свой цвет на «colorControlActivated», флажок со стилем остался тем же.Изменение цвета леденца для Android флажок

Также я хотел изменить цвета моего другого флажка без файлов с возможностью рисования.

Я попытался установить стиль с различными «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 –

+0

Исправить. Я предположил, что это та платформа, на которую вы нацелились. Похоже, Google пропустил поддержку платформ 4.x, поскольку использование 'colorControlActivated', похоже, не влияет на флажок (как вы заметили). Кажется, что drawables - единственный способ пойти в данный момент, если вы хотите изменить цвет (в конце концов посмотрите http://stackoverflow.com/a/27185692/409661). –

0

Вы можете установить цвет непосредственно в xml. Использование buttonTint для коробки: (на уровне API 23)

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

Вы также можете сделать это с помощью 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>