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

时间:2017-08-19 10:16:39

标签: android android-layout android-textinputlayout

我需要更改edittext hinttext colour中未聚焦的TextinputLayout的颜色。我尝试过如下。除了提示未聚焦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>

enter image description here

上图是我的输出,如果Email edittext突出显示,则密码字段hinttextcolor应为灰色,如密码字段灰线。

5 个答案:

答案 0 :(得分:1)

您只需从代码中删除一些行即可。从library(quantmod) getSymbols("AAPL", from = "1990-01-01") chartSeries(AAPL, type="line", subset="last 15 years") 删除不必要的样式,然后从styles删除app:hintTextAppearance="@style/AppTheme"

您的TextinputLayout应该是这样的。

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

我测试了它。它会对你有用。

答案 1 :(得分:0)

在编辑文本中尝试此操作

      android:textColorHint="@color/gray"

答案 2 :(得分:0)

你可以在这里应用反向逻辑。就像这样:

  1. 将所有edittext的提示颜色从布局文件设置为灰色。
  2. 将onFocusChanged侦听器添加到所有edittext。
  3. 每当编辑文本聚焦时,请更改其提示文本颜色 特别是edittext。
  4. 希望它有效。

答案 3 :(得分:0)

请尝试以下代码:

<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 标记。

答案 4 :(得分:0)

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

<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>