Подтвердить что ты не робот

Цвет текста в тексте не изменяется при отключении

Когда я вызываю setEnabled(false) для объекта TextView, цвет текста не изменяется. Я ожидал, что он будет изменен на серый. Если я удалю строку android:textColor в моем XML файле, она вернется в нормальное состояние.

Любые идеи?

4b9b3361

Ответ 1

Я думаю, что происходит, поскольку, поскольку вы переопределяете цвет текста по умолчанию, он не наследует другие стили textcolor. Попробуйте создать ColorStateList для него и установить для него атрибут textColor вместо цвета.

В цветном файле (например, res/color/example.xml):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="@color/disabled_color" />
    <item android:color="@color/normal_color"/>
</selector>

затем в вашем макете:

<TextView
    android:text="whatever text you want"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/example" />

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