Флажок Appcompat v7 Material меняет цвет на черный по умолчанию на устройствах Lollipop

Я использую флажок материала appcompat v7. Тема моего проекта светло-голубая, поэтому я назначаю светло-синий цвет отмеченному флажку в styles.xml следующим образом.

<!--checked color-->
<item name="colorAccent">@color/light_blue</item> 

<!--un checked color--> 
<item name="android:textColorSecondary">@color/secondary_text</item>  

В моем файле макета

    <CheckBox
        android:id="@+id/chk_tick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@drawable/abc_btn_check_material"
        android:layout_gravity="center"/>

Все отлично работает с версиями ниже kitkat, но проблема возникает только с версиями леденца (по умолчанию он автоматически назначает черный цвет). Я действительно не знаю, почему это происходит. Пожалуйста, помогите мне с вашими решениями. заранее спасибо


person Chandru    schedule 29.05.2015    source источник
comment
Вы уверены, что у вас нет другого файла style.xml для v21?   -  person tyczj    schedule 29.05.2015
comment
Я думаю, вам может понадобиться <item name="android:colorAccent">@color/light_blue</item> для леденца (хотя это может быть автоматически в зависимости от того, от какой темы вы наследуете)   -  person njzk2    schedule 29.05.2015
comment
@tyczj у меня нет отдельного стиля v21   -  person Chandru    schedule 29.05.2015


Ответы (2)


Удалите эту строку:

android:button="@drawable/abc_btn_check_material"

Ваш CheckBox должен быть оформлен автоматически, без установки свойства android:button.

person questioner    schedule 29.05.2015
comment
@ njzk2 да - вот почему используется AppCompat - person questioner; 29.05.2015
comment
хорошо, это прекрасно работает @questioner. Спасибо, это действительно очень помогло мне. Спасибо, ребята, njzk2 и tyczj. - person Chandru; 29.05.2015

Используйте флажок AppCombat для достижения наилучшего результата

<android.support.v7.widget.AppCompatCheckBox
    android:id="@+id/chkSelected"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/white"
   />

После этого перейдите в файл styles.xml и создайте новые стили следующим образом.

   <style name="SampleTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="colorAccent">@color/colorAccent</item>
            <item name="android:textColorSecondary">@color/red</item>
        </style>

Это еще не сделано, перейдите в свой манифест xml

 <activity
        android:name=".yourActivity"
        android:theme="@style/SampleTheme" /> 

Это также работает на устройствах pre_lollipop. Удачного кодирования :)

person Abhilash    schedule 10.03.2016