Change TextInputEditText Hint Color
我想更改TextInputEditText提示的文本颜色。 看来,无论我进行什么更改,颜色始终是主要应用程序主题的颜色。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <android.support.design.widget.TextInputLayout android:id="@+id/enter_template_name_edit_text_input_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColorHint="@color/warm_grey"> <android.support.design.widget.TextInputEditText android:id="@+id/template_name_text_input_edit_text" style="@style/EditTextBaseStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="start" android:hint="@string/add_nitrogen_template_name_label" android:imeOptions="actionNext" android:inputType="textCapWords|textNoSuggestions" android:maxLines="1" android:paddingBottom="@dimen/md_content_padding_bottom" android:textAlignment="textStart" android:textColorHint="@color/warm_grey" android:textSize="32sp" /> |
和基础风格
1 2 3 4 5 6 | <style name="EditTextBaseStyle" parent="Widget.AppCompat.EditText"> <item name="android:textViewStyle">@style/TextViewStyle</item> <item name="android:textColor">@color/middle_black</item> <item name="android:textStyle">normal</item> <item name="android:textSize">16sp</item> </style> |
我尝试添加
1 | android:textColorHint="@color/warm_grey" |
对于基本样式以及我的AppTheme都没有帮助。
这是我的AppTheme
1 2 3 4 5 6 7 8 | <style name="AppTheme" parent="Theme.AppCompat"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/primary</item> <item name="android:textColorHint">@color/primary_text</item> <item name="android:windowBackground">@null</item> <item name="android:windowSoftInputMode">stateHidden|adjustPan</item> </style> |
我在这里想念什么吗?
谢谢,
水獭
编辑:当字段没有焦点时,提示是正确的颜色。 当字段获得焦点时,提示将移到字段上方并显示不正确的颜色。
对我来说,解决方法是在TextInputLayout上设置提示和textColor,而不是在TextInputEditText上设置,如下所示:
https://material.io/develop/android/components/text-input-layout/
1 2 3 4 5 6 7 8 9 | <android.support.design.widget.TextInputLayout android:id="@+id/passwordTextInputLayout" android:hint="@string/add_nitrogen_template_name_label" android:textColorHint="@color/warm_grey"> <android.support.design.widget.TextInputEditText android:textAppearance="@style/TextAppearance.Regular" android:textColor="@color/white"/> </android.support.design.widget.TextInputLayout> |
您是否还尝试过
1 2 3 | <item name="colorControlNormal">@color/primary</item> <item name="colorControlHighlight">@color/warm_grey</item> <item name="colorControlActivated">@color/warm_grey</item> |
或移动
1 | android:textColorHint="@color/warm_grey" |
从XML小部件到
您可以在布局中使用
1 2 3 4 | <com.google.android.material.textfield.TextInputLayout app:hintTextColor="@color/mycolor" android:textColorHint="@color/text_input_hint_selector" .../> |
或者您可以以自定义样式定义它们:
1 2 3 4 5 6 7 | <style name="..." parent="Widget.MaterialComponents.TextInputLayout.FilledBox"> <!-- The color of the label when it is collapsed and the text field is active --> <item name="hintTextColor">@color/my_color</item> <!-- The color of the label in all other text field states (such as resting and disabled) --> <item name="android:textColorHint">@color/my_selector_color</item> </style> |
尝试这个:
1 2 3 | <style name="AppTheme.EditTextBaseStyle" parent="@android:style/TextAppearance"> <item name="android:textColor">@android:color/darker_gray</item> </style> |
通过添加,我能够使它成功运行
1 | app:hintTextAppearance="@style/EditTextHintStyle" |
致我的
这是正确的风格
1 2 3 | <style name="EditTextHintStyle" parent="EditTextBaseStyle"> <item name="android:textColor">@color/warm_grey</item> </style> |