Android 带有 ExposedDropDownMenu 样式的 AutoCompleteTextView
Android AutoCompleteTextView with Style ExposedDropDownMenu
我有这种样式的 AutoCompleteTextView:
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
我想改变轮廓的颜色
Example
.只有我发现的是 app:boxStrokeColor
但这只在聚焦模式下改变颜色。
您可以使用颜色状态列表资源更改聚焦、悬停或未聚焦模式的边框颜色。
在res
下创建一个color
资源目录,并添加一个XML文件,命名为border_stroke.xml
。 XML 的路径是 res/color/border_stroke.xml
现在,在border_stroke.xml
中放置一个selector
,所有模式的颜色值
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black" android:state_focused="true" />
<item android:color="@color/blue" android:state_hovered="true" />
<item android:color="@color/green" android:state_enabled="false" />
<item android:color="@color/pink" /> <!--unfocused-->
</selector>
将此 border_stroke
设置为 boxStrokeColor
属性的颜色值
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:boxStrokeColor="@color/border_stroke"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
...
>
我有这种样式的 AutoCompleteTextView:
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
我想改变轮廓的颜色
Example
.只有我发现的是 app:boxStrokeColor
但这只在聚焦模式下改变颜色。
您可以使用颜色状态列表资源更改聚焦、悬停或未聚焦模式的边框颜色。
在res
下创建一个color
资源目录,并添加一个XML文件,命名为border_stroke.xml
。 XML 的路径是 res/color/border_stroke.xml
现在,在border_stroke.xml
中放置一个selector
,所有模式的颜色值
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black" android:state_focused="true" />
<item android:color="@color/blue" android:state_hovered="true" />
<item android:color="@color/green" android:state_enabled="false" />
<item android:color="@color/pink" /> <!--unfocused-->
</selector>
将此 border_stroke
设置为 boxStrokeColor
属性的颜色值
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:boxStrokeColor="@color/border_stroke"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
...
>