Как определить ColorStateList для TextView? - программирование
Подтвердить что ты не робот

Как определить 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>
4b9b3361

Ответ 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. По этой причине более конкретные элементы должны быть размещены ранее в файле. Элемент без спецификации состояния считается подходящим для любого набора состояний и обычно полезен как последний элемент, который будет использоваться по умолчанию.

Важно, чтобы у вас было более широкое условие в нижней части тега селектора. Надеюсь, это поможет!