如何更改 TextInputLayout 中未聚焦的 edittext 提示文本颜色的颜色?

How to change the colour of the unfocused edittext hinttext colour in TextInputLayout?

我需要更改 TextinputLayout 中未聚焦的 edittext hinttext colour 的颜色。我试过如下。除了未聚焦 edittext 的提示文本颜色外,一切正常。我在这里做错了什么?

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"          
        android:paddingLeft="15dp"
        android:paddingRight="15dp">


    <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:hintTextAppearance="@style/AppTheme">

        <EditText
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:hint ="Email"
                android:maxLines="1"
                android:textColor="#000000" />

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
            android:layout_marginTop="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:hintTextAppearance="@style/AppTheme">

        <EditText android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:id="@+id/passwordText"
                  android:hint="Password"
                  android:maxLines="1"
                  android:textColor="#000000"
                  android:inputType="textPassword"/>

    </android.support.design.widget.TextInputLayout>

</LinearLayout>

我的风格:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorAccent</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorHint">@color/colorAccent</item>
    <item name="android:textSize">18sp</item>
    <item name="colorControlNormal">#6E6D6D</item>

</style>

上图是我的输出,如果 Email edittext 被高亮表示,密码字段 hinttextcolor 应该是灰色,如密码字段灰线。

在您的编辑文本中试试这个

      android:textColorHint="@color/gray"

你可以应用反向逻辑here.Like这个:

  1. 从布局文件中将所有 edittext 的提示颜色设置为灰色。
  2. 为所有 edittext 添加 onFocusChanged 侦听器。
  3. 每当任何编辑文本获得焦点时,更改该文本的提示文本颜色 特定的编辑文本。

希望有用。

您只需从代码中删除一些行即可。从 styles 中删除不必要的样式并从 TextinputLayout.

中删除 app:hintTextAppearance="@style/AppTheme"

你的style应该是这样的。

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorAccent</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textSize">18sp</item>
</style>

你的XML应该是这样的。

<android.support.design.widget.TextInputLayout
            android:textColorHint="#404040"    // Change color as per your wish
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        <EditText
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:hint ="Email"
                android:maxLines="1"
                android:textColor="#000000" />

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
            android:layout_marginTop="10dp"
            android:textColorHint="#404040"    // Change color as per your wish
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        <EditText android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:id="@+id/passwordText"
                  android:hint="Password"
                  android:maxLines="1"
                  android:textColor="#000000"
                  android:inputType="textPassword"/>

    </android.support.design.widget.TextInputLayout>

我已经测试过了。它会为你工作。

请尝试以下代码:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/mUserEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Email"
        android:imeOptions="actionNext"
        android:inputType="text"
        android:maxLines="1"
        android:paddingLeft="10dp"
        android:textColorHint="@color/hint_color"
        android:textSize="13sp" />
</android.support.design.widget.TextInputLayout>

Remove android:textColorHint tag from the style file.

这是最简单的方法。请复制+粘贴

<android.support.design.widget.TextInputLayout
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:hint="Description">

                                <android.support.design.widget.TextInputEditText
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
                                    android:imeOptions="actionDone"
                                    android:inputType="textMultiLine"/>

                            </android.support.design.widget.TextInputLayout>