如何给TextInputLayout的boxBackground设置不同的颜色?

How to set different colors of TextInputLayout's boxBackground?

我有一个使用 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 的属性。

您可以使用方法 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>