Я намагаюся змінити колір тла TextViewвіджета Android, коли користувач торкнеться його. Для цього я створив селектор, який зберігається в res/color/selector.xmlі приблизно виглядає так:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/semitransparent_white"
/>
<item
android:color="@color/transparent"
/>
</selector>
clickableАтрибут TextViewє true, в тому випадку, що представляють інтерес.
Коли я призначаю цей селектор TextViewяк а android:background="@color/selector", я отримую такий виняток під час виконання:
ПОМИЛКА / AndroidRuntime (13130): Викликано: org.xmlpull.v1.XmlPullParserException: Бінарний файл XML-файлу №6: тег вимагає атрибута 'dravable' або дочірнього тега, що визначає виводимий файл
Коли я змінюю атрибут на Dravable, він працює, але результат виглядає абсолютно неправильно, оскільки ідентифікатори, мабуть, інтерпретуються як посилання на зображення замість кольорових посилань (як підказує "малюється").
Що мене бентежить, це те, що я можу встановити кольорову посилання, наприклад, "@ color / black" як атрибут фону. Це працює як очікувалося. Використання селекторів не працює.
Я також можу використовувати селектор як textColorбез проблем.
Який правильний спосіб застосувати селектор кольорів фону до системи TextViewAndroid?