TextInputLayout:以编程方式设置框描边颜色(突出显示和未突出显示)

时间:2019-01-16 17:32:17

标签: android-textinputlayout material-components-android

我正在尝试将这些材料文本字段与框轮廓样式一起使用。我看到有一个名为boxStrokeColor的属性,它使我可以仅在文本字段突出显示时设置笔划 ,而在未突出显示时将其设置为全局主题{{1} }值。

在我们的应用中,用户可以为某些视图设置自己的背景色,我想将文本字段的笔触颜色更改为合适的对比色。

是否有任何干净的方法以编程方式设置未突出显示的框描边颜色?

1 个答案:

答案 0 :(得分:0)

您可以使用 setBoxStrokeColorStateList 方法。 像这样:

textInputLayout.setBoxStrokeColorStateList(AppCompatResources.getColorStateList(this,R.color.text_input_layout_stroke_color));

它与选择器一起工作,如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="?attr/colorPrimary" android:state_focused="true"/>
  <item android:alpha="0.87" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
  <item android:alpha="0.12" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
  <item android:alpha="0.38" android:color="?attr/colorOnSurface"/>
</selector>