【问题标题】:How to set different colors of TextInputLayout's boxBackground?如何设置不同颜色的TextInputLayout框背景?
【发布时间】:2020-06-16 07:14:39
【问题描述】:

我有一个使用TextInputLayout 的简单输入字段。我可以用

设置框的背景颜色
setBoxBackgroundColorResource(R.color.mycolor)

但现在我想根据状态使用不同的颜色。 mycolor_activated 用于激活状态,mycolor_default 用于 detault 状态。创建颜色状态列表并将其设置为资源不起作用,它会忽略激活状态:

<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 的属性。

【问题讨论】:

    标签: android kotlin android-textinputlayout material-components-android


    【解决方案1】:

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

    【讨论】:

    • 我明白了,这是我的问题,我使用的是1.2.0-alpha01。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2010-12-11
    • 1970-01-01
    • 2013-05-06
    • 2016-03-16
    • 2012-09-21
    • 2018-10-19
    相关资源
    最近更新 更多