我正在尝试更改com.google.android.material.textfield.TextInputLayout的框描边颜色,虽然没有重点突出,但是没有属性,这是我的TextInputLayout代码
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="36dp"
android:layout_marginTop="38dp"
android:layout_marginEnd="36dp"
android:textColorHint="@color/white"
app:boxStrokeColor="@color/white"
app:boxStrokeWidth="1dp">
<EditText
android:id="@+id/editTxt_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_email"
android:inputType="textEmailAddress"
android:textColorHint="@color/white" />
</com.google.android.material.textfield.TextInputLayout>
,我搜索了一种更改其颜色的方法,并找到了此链接: https://github.com/material-components/material-components-android/issues/112
所以我尝试在我的颜色文件中使用此行
<color name="mtrl_textinput_default_box_stroke_color" tools:override="true">#fff</color>
这解决了问题并更改了笔触框的颜色,但是这里的问题是我想在同一应用程序的其他TextInputLayouts中更改此颜色!
答案 0 :(得分:2)
要更改框笔触颜色,只需使用xml中的 app:boxStrokeColor
属性即可。
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
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>
您还可以使用自定义样式:
<style name="MyOutlinedBox" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="boxStrokeColor">@color/text_input_selector</item>
</style>