Как определить ColorStateList для TextView?
Когда выделен мой ListViewItem
, я хочу, чтобы текст стал белым. Как это определить?
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@color/testcolor1"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
<item android:state_enabled="false" android:color="@color/testcolor3" />
<item android:color="@color/testcolor5"/>
</selector>
Ответы
Ответ 1
Создать файл res/drawable/text_color.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" />
<item android:state_focused="true" android:state_pressed="true" android:color="#ffffff" />
<item android:state_focused="false" android:state_pressed="true" android:color="#ffffff" />
<item android:color="#000000" />
</selector>
Затем используйте @drawable/text_color
из xml (или R.drawable.text_color
из кода) в качестве цвета текста для элементов списка.
Ответ 2
В дополнение к тому, что было сказано выше, я хотел бы выделить один пункт, взятый из приведенного ниже URL.
https://developer.android.com/reference/android/content/res/ColorStateList.html
Примечание. Список спецификаций состояния будет сопоставляться в том порядке, в котором они отображаются в файле XML. По этой причине более конкретные элементы должны быть размещены ранее в файле. Элемент без спецификации состояния считается подходящим для любого набора состояний и обычно полезен как последний элемент, который будет использоваться по умолчанию.
Важно, чтобы у вас было более широкое условие в нижней части тега селектора. Надеюсь, это поможет!