如何在material.io中更改文本字段的轮廓?

时间:2019-10-14 19:19:40

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

我有两个文本字段(Material.io),当我点击第一个文本字段时,轮廓颜色变为我在app:boxStrokeColor="@color/button_colour"中指定的颜色,但是当我选择另一个文本字段时,第一个颜色文本字段更改为灰色阴影。如何将此颜色更改为任何其他颜色? enter image description here

1 个答案:

答案 0 :(得分:2)

使用选择器

代替使用颜色
app:boxStrokeColor="@color/myselector"

其中的选择器类似于:

<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>

否则,您可以:

  • boxStrokeColor使用标准选择器,并使用android:theme="@style/ThemeOverlay_til"覆盖颜色
  <style name="ThemeOverlay_til">
    <item name="colorOnSurface">@color/....</item>
  </style>
  • 为您的TextInputLayout使用自定义样式来覆盖颜色:

        

  <style name="Custom_OutlinedBox" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="materialThemeOverlay">@style/MyMaterialThemeOverlay</item>
  </style>

  <style name="MyMaterialThemeOverlay" parent="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox">
    <item name="colorOnSurface">@color/....</item>
  </style>