Я столкнулся с проблемой, когда селектор цвета в одном из моих рисуемых XML-файлов, похоже, не соблюдается. У меня есть макет, включающий:
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/sortLayout"
android:layout_width="fill_parent"
android:gravity="center"
android:background="@color/listSortBarBackground" android:orientation="vertical">
<ToggleButton
android:layout_width="30dp"
android:layout_height="30dp"
android:checked="true"
android:background="@drawable/filter_button_left"/>
<ToggleButton
android:layout_width="30dp"
android:layout_height="30dp"
android:checked="false"
android:background="@drawable/filter_button_left"/>
</LinearLayout>
drawable\filter_button_left.xml выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/filter_button_color" />
<corners
android:bottomLeftRadius="0dp"
android:topLeftRadius="5dp"
android:topRightRadius="0dp"
android:bottomRightRadius="5dp"/>
</shape>
и color\filter_button_color.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="@color/myred"
android:state_checked="true"/>
<item
android:color="@color/myblue"
android:state_checked="false"/>
</selector>
(myred и myblue определены в colors.xml)
Кнопки визуализируются, и я могу сказать, что они получают правильное отмеченное состояние, поскольку первая отображается с текстом «ВКЛ», а вторая — «ВЫКЛ», обе кнопки получают фигуру в качестве фона, но в обоих случаях цвет фигуры мирред. Я поиграл с переворачиванием элементов в селекторе filter_button_color.xml, и кажется, что независимо от фактического состояния или состояний в элементах селектора всегда используется верхний цвет.
Кто-нибудь может понять, почему это не должно работать?
Спасибо! Скотт