Android 如何在TextInputLayout中更改未聚焦的edittext hinttext颜色?

Android 如何在TextInputLayout中更改未聚焦的edittext hinttext颜色?,android,android-layout,android-textinputlayout,Android,Android Layout,Android Textinputlayout,我需要更改TextinputLayout中未聚焦的edittext-hinttext-color的颜色。我试着像下面那样。除了未聚焦的edittext的提示文本颜色外,其他一切都正常。我做错了什么 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"

我需要更改
TextinputLayout
中未聚焦的
edittext-hinttext-color
的颜色。我试着像下面那样。除了未聚焦的
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>


上面的图像是我的输出,若电子邮件edittext突出显示,则表示密码字段hinttextcolor应为灰色,就像密码字段灰线一样

在编辑文本中尝试此操作

      android:textColorHint="@color/gray"

您可以在此处应用反向逻辑。如下所示:

  • 从布局文件中将所有edittext的提示颜色设置为灰色
  • 将onFocusChanged侦听器添加到所有edittext
  • 每当任何edittext聚焦时,更改该文本的提示文本颜色 特定编辑文本

  • 希望它能起作用。

    您所要做的就是从代码中删除一些行。从
    样式中删除不必要的样式
    并从
    文本输入布局中删除
    app:hinttextearance=“@style/AppTheme”

    你的
    风格应该是这样的

    <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>
    
    <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>
    
    
    
    从样式文件中删除android:textColorHint标记


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

    <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>
    
    
    
    检查此选项,它可能会对您有所帮助。。它运转良好。。除了未聚焦的颜色是白色。。我想要灰色@color/colorPrimary@color/colorAccent@color/colorAccent 18sp——我需要为colorPrimary使用什么颜色值。。在这里,我们没有指定任何地方为灰色。。它会如何考虑?看到更新的答案。在TextInputLayout中设置提示颜色,以解决您的问题
    <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>