Как установить разные цвета для boxBackground TextInputLayout? - PullRequest
1 голос
/ 16 июня 2020

У меня есть простое поле ввода с использованием TextInputLayout. Я могу установить цвет фона окна с помощью

setBoxBackgroundColorResource(R.color.mycolor)

Но теперь я хотел бы иметь разные цвета в зависимости от состояния. mycolor_activated для активированного состояния и mycolor_default для детального состояния. Создание списка состояний цвета и установка его как ресурса не работает, он игнорирует активированное состояние:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:color="#FFF" />
    <item android:color="#000" />
</selector>
setBoxBackgroundColorResource(R.color.myselector)

Есть способ сделать это? У меня нет проблем с настройкой списка состояний цвета, например, для обводки. Обратите внимание, что мне также нужно программно установить свойства TextInputLayout.

1 Ответ

1 голос
/ 16 июня 2020

Вы можете использовать метод setBoxBackgroundColorStateList.

textInputLayout.setBoxBackgroundColorStateList(
         ContextCompat.getColorStateList(this,R.color.my_selector));

Примечание: для этого метода требуется как минимум версия 1.2.0-beta01

Это селектор по умолчанию:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:alpha="..." android:color="...." android:state_hovered="true"/>
  <item android:alpha="..." android:color="..." android:state_focused="true"/>
  <item android:alpha="..." android:color="..." android:state_enabled="false"/>
  <item android:alpha="..." android:color="..."/>
</selector>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...