如何更改TextInputLayout的浮动标签颜色

参考Google发布的新TextInputLayout ,如何更改浮动标签的文本颜色?

在样式中设置colorControlNormalcolorControlActivatedcolorControlHighLight不起作用。

这是我现在所拥有的:

这是我现在所拥有的

尝试下面的代码在正常状态下工作

  <android.support.design.widget.TextInputLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:theme="@style/TextLabel"> <android.support.v7.widget.AppCompatEditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Hiiiii" android:id="@+id/edit_id"/> </android.support.design.widget.TextInputLayout> 

样式文件夹TextLabel代码

  <style name="TextLabel" parent="TextAppearance.AppCompat"> <!-- Hint color and label color in FALSE state --> <item name="android:textColorHint">@color/Color Name</item> <item name="android:textSize">20sp</item> <!-- Label color in TRUE state and bar color FALSE and TRUE State --> <item name="colorAccent">@color/Color Name</item> <item name="colorControlNormal">@color/Color Name</item> <item name="colorControlActivated">@color/Color Name</item> </style> 

设置为应用程序的主题,它只能显示状态

  <item name="colorAccent">@color/Color Name</item> 

更新:

UnsupportedOperationException:无法在api 16或更低版本中转换为color:type = 0x2

 <style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance"> <item name="android:textColor">@color/red</item> <item name="android:textSize">14sp</item> </style> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:textColorHint="@color/gray" //support 23.0.0 app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout" > <android.support.v7.widget.AppCompatEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint" /> </android.support.design.widget.TextInputLayout> 

find答案,使用android.support.design:hintTextAppearance属性来设置你自己的浮动标签外观。

例:

 <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" app:hintTextAppearance="@style/TextAppearance.AppCompat"> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/prompt_password"/> </android.support.design.widget.TextInputLayout> 

好吧,我发现这个答案非常有帮助,感谢所有贡献的人。 只是为了添加一些东西。 接受的答案确实是正确的答案…但是…在我的情况下,我正在寻找实施EditText小部件下面的错误消息与app:errorEnabled="true" ,这一app:errorEnabled="true"我的生活困难。 它似乎覆盖了我为android.support.design.widget.TextInputLayoutselect的主题,它具有由android:textColorPrimary定义的不同文本颜色。

最后,我开始将文本颜色直接应用到EditText小部件。 我的代码看起来像这样:

styles.xml

 <item name="colorPrimary">@color/my_yellow</item> <item name="colorPrimaryDark">@color/my_yellow_dark</item> <item name="colorAccent">@color/my_yellow_dark</item> <item name="android:textColorPrimary">@android:color/white</item> <item name="android:textColorSecondary">@color/dark_gray</item> <item name="android:windowBackground">@color/light_gray</item> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:textColorHint">@color/dark_gray</item> <item name="android:colorControlNormal">@android:color/black</item> <item name="android:colorControlActivated">@android:color/white</item> 

和我的小工具:

 <android.support.design.widget.TextInputLayout android:id="@+id/log_in_layout_name" android:layout_width="match_parent" android:layout_height="wrap_content" app:errorEnabled="true"> <EditText android:id="@+id/log_in_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textColor="@android:color/black" android:ems="10" android:hint="@string/log_in_name" android:inputType="textPersonName" /> </android.support.design.widget.TextInputLayout> 

现在它显示黑色的文字颜色,而不是textColorPrimary白色。

在最新版本的支持库(23.0.0+)中, TextInputLayout在XML中使用以下属性来编辑浮动标签颜色: android:textColorHint="@color/white"

我build议你为TextInputLayout制作风格主题,只改变口音的颜色。 将父级设置为您的应用基本主题:

  <style name="MyTextInputLayout" parent="MyAppThemeBase"> <item name="colorAccent">@color/colorPrimary</item> </style> <android.support.design.widget.TextInputLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:theme="@style/MyTextInputLayout"> 

您不需要使用android:theme="@style/TextInputLayoutTheme"来更改浮动标签颜色,因为它将影响用作标签的小型TextView的整个主题。 相反,你可以使用app:hintTextAppearance="@style/TextInputLayout.HintText"其中:

 <style name="TextInputLayout.HintText"> <item name="android:textColor">?attr/colorPrimary</item> <item name="android:textSize">@dimen/text_tiny_size</item> ... </style> 

让我知道如果解决scheme工作:-)

你应该在这里改变你的颜色

 <style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">#673AB7</item> <item name="colorPrimaryDark">#512DA8</item> <item name="colorAccent">#FF4081</item> <item name="android:windowBackground">@color/window_background</item> </style> 

现在,只需使用colorAccentcolorPrimary就可以完美工作。

我解决了这个问题。 这是布局:

  <android.support.design.widget.TextInputLayout android:id="@+id/til_username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/username" > <android.support.v7.widget.AppCompatEditText android:id="@+id/et_username" android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" /> </android.support.design.widget.TextInputLayout> 

这是风格:

 <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="colorAccent">@color/pink</item> <item name="colorControlNormal">@color/purple</item> <item name="colorControlActivated">@color/yellow</item> </style> 

你应该在应用程序中使用你的主题:

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > </application> 

在关注文本标签时更改文本标签的颜色。 即键入它。 你必须添加指定

 <item name="android:textColorPrimary">@color/yourcolorhere</item> 

请注意:您必须将所有这些实现添加到您的主要主题中。

它为我工作…..在TextInputLayout添加提示颜色

  <android.support.design.widget.TextInputLayout android:textColorHint="#ffffff" android:id="@+id/input_layout_password" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/edtTextPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:hint="Password" android:inputType="textPassword" android:singleLine="true" /> </android.support.design.widget.TextInputLayout> 

改变提示的颜色和编辑文本的下划线颜色:colorControlActivated

要更改字符计数器颜色:textColorSecondary

要更改错误消息颜色:colorControlNormal

要更改密码可见性button色调:colorForeground

有关TextInputLayout的更多信息,请阅读http://www.zoftino.com/android-textinputlayout-tutorial

 <style name="MyAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorControlActivated">#e91e63</item> <item name="android:colorForeground">#33691e</item> <item name="colorControlNormal">#f57f17</item> <item name="android:textColorSecondary">#673ab7</item> </style>