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