参考谷歌发布的新TextInputLayout,如何更改浮动标签文本颜色?
在样式中设置colorControlNormal, colorControlActivated, colorControlHighLight没有帮助。
这是我现在拥有的:
参考谷歌发布的新TextInputLayout,如何更改浮动标签文本颜色?
在样式中设置colorControlNormal, colorControlActivated, colorControlHighLight没有帮助。
这是我现在拥有的:
当前回答
从文档中可以看到:
提示应该设置在TextInputLayout上,而不是EditText上。如果在XML中的子EditText上指定了提示,TextInputLayout可能仍然正确工作;TextInputLayout将使用EditText的提示作为浮动标签。但是,将来修改提示的调用将不会更新TextInputLayout的提示。为了避免意外的行为,在TextInputLayout上调用setHint(CharSequence)和getHint(),而不是在EditText上。
所以我设置android:hint和app:hintTextColor在TextInputLayout,而不是在TextInputEditText和它工作。
其他回答
这很简单,但由于多个视图在不同的配置/名称空间中具有相同的属性,开发人员会感到困惑。
在TextInputLayout的情况下,我们每次都有一个不同的视图和参数,要么与TextInputEditText或直接到TextInputLayout。
我使用了以上所有的修复: 但我发现我在吸毒
app:textColorHint="@color/textcolor_black"
其实我应该用
android:textColorHint="@color/textcolor_black"
作为TextinputLayout的属性
textcolor_black.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black_txt" android:state_enabled="true" />
<item android:color="@color/black_txt" android:state_selected="true" />
<item android:color="@color/txtColorGray" android:state_selected="false" />
<item android:color="@color/txtColorGray" android:state_enabled="false" />
</selector>
我如何改变浮动标签文本颜色?
使用材质组件库,您可以自定义TextInputLayout提示文本颜色使用(它需要版本1.1.0)
在布局中: app:hintTextColor属性:标签折叠和文本字段激活时的颜色 android:textColorHint属性:标签的颜色在所有其他文本字段的状态(如休息和禁用)
<com.google.android.material.textfield.TextInputLayout
app:hintTextColor="@color/mycolor"
android:textColorHint="@color/text_input_hint_selector"
.../>
扩展材质样式Widget.MaterialComponents.TextInputLayout.*:
<style name="MyFilledBox" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
<item name="hintTextColor">@color/mycolor</item>
<item name="android:textColorHint">@color/text_input_hint_selector</item>
</style>
android:textColorHint的默认选择器是:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="0.38" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0.6" android:color="?attr/colorOnSurface"/>
</selector>
我建议你为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">
在我的情况下,我添加了这个“app:hintTextAppearance=“@color/colorPrimaryDark”在我的TextInputLayout小部件。
试试下面的代码,它在正常状态下工作
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/TextLabel">
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_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>