如何更改 Material Design TextInputLayout 提示文本颜色?

How to change the Material Design TextInputLayout Hint Text Color?

我正在尝试将 hintTextColor AND Material 设计的 textInputLayoutboxStrokeColor 设置为 3 种不同的状态颜色,例如:

我怎样才能做到这一点?

对于 hintTextColor,我尝试了 Gabriele Mariotti in here 提出的建议,但问题是其中一种颜色应用于两种不同的状态([disabled] 和[enabledunfocused]),我想区分这两者。

您可以使用自定义样式:

<style name="CustomOutlineBox" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="boxStrokeColor">@color/text_input_layout_stroke_color</item>
    <item name="android:textColorHint">@color/text_color_hint</item>
    <item name="hintTextColor">@color/green</item>
</style>

使用 @color/text_color_hint 选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:alpha="..." android:color="@color/red" android:state_enabled="false"/>
    <item android:alpha="..." android:color="@color/blue"/>
</selector>

@color/text_input_layout_stroke_color 选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:alpha="..." android:color="@color/green" android:state_focused="true"/>
    <item android:alpha="..." android:color="@color/green" android:state_hovered="true"/>
    <item android:alpha="..." android:color="@color/red" android:state_enabled="false"/>
    <item android:alpha="..." android:color="@color/blue"/>  <!-- unfocused -->
</selector>

专注:

不专心:

已禁用: