我想在 TEXT INPUT LAYOUT 处于聚焦或未聚焦状态时更改相同的提示颜色。我有两个 TEXT INPUT LAYOUT 字段。两个字段的颜色相同。但它在聚焦状态下显示颜色,但在未聚焦状态下出现默认的灰色。我想在聚焦和未聚焦状态下保持提示的颜色相同。
<com.example.viveka.snipeid.CustomTextInputLayout
android:id="@+id/input_layout_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
app:errorEnabled="true"
>
<EditText
android:id="@+id/editEmail"
android:layout_width="match_parent"
android:layout_height="40dp"
android:hint="email / snipe id"
android:digits="abcdefghijklmnopqrstuvwxyz.@0123456789"
android:textAllCaps="false"
android:textSize="12sp"
android:layout_marginLeft="-4dp"
android:textColor="@color/lightgray"
android:textColorHint="@color/primary"/>
</com.example.viveka.snipeid.CustomTextInputLayout>
我需要将两个字段更改为相同的颜色..
使用材质 TextInputLayout 并添加 textColorHint ,hintTextColor 属性
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="@color/gray"
app:hintTextColor="@color/gray"
>
你可以这样做。
android:textColorHint="#FF0000"
是EditText的提示颜色。
如果您想要文本颜色以及提示颜色。
您可以在
android:textColor="#FF0000"
中更改 EditText
。
您可以添加
app:errorTextAppearance="@style/text_in_layout_error_hint_Style"
来更改错误文本颜色。
<com.example.viveka.snipeid.CustomTextInputLayout
android:id="@+id/input_layout_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:textColorHint="#FF0000"
app:errorTextAppearance="@style/text_in_layout_error_hint_Style"
app:hintTextAppearance="@style/text_in_layout_hint_Style"
app:errorEnabled="true">
<EditText
android:id="@+id/editEmail"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginLeft="-4dp"
android:digits="abcdefghijklmnopqrstuvwxyz.@0123456789"
android:hint="email / snipe id"
android:textAllCaps="false"
android:textColor="#FF0000"
android:textColorHint="@color/primary"
android:textSize="12sp"/>
</com.example.viveka.snipeid.CustomTextInputLayout>
LEFT-TOP
提示颜色取决于app:hintTextAppearance="@style/text_in_layout_hint_Style"
。
以及样式代码:
<style name="text_in_layout_hint_Style">
<item name="android:textColor">#FF0000</item>
<item name="android:textSize">12sp</item>
</style>
添加错误文本样式
<style name="text_in_layout_error_hint_Style">
<item name="android:textColor">#00ff00</item>
<item name="android:textSize">12sp</item>
</style>
创建一个selector_text_input_layout_hint_color.xml(例如)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorWhenFocus" android:state_focused="true"/>
<item android:color="@color/colorWhenNotFocus" android:state_focused="false"/>
</selector>
在文本输入布局中设置下一个属性:
android:textColorHint="@color/selector_text_input_layout_hint_color"
感谢:https://medium.com/@fast3r/this-is-brilliant-martin-thank-you-very-much-6c4a43a65df4
仅此而已。它对我有用;)
在新材质主题中,提示颜色是未聚焦时 colorOnSurface 属性的着色版本。
聚焦时它是主色