我正在使用android设计库的TextinputLayout
。但无法自定义EditText
内部TextinputLayout
的提示颜色、标签颜色和下划线颜色。请帮忙。
基于Fedor Kazakov和其他答案,我创建了一个默认配置。
风格。xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="Widget.Design.TextInputLayout" parent="AppTheme">
<item name="hintTextAppearance">@style/AppTheme.TextFloatLabelAppearance</item>
<item name="errorTextAppearance">@style/AppTheme.TextErrorAppearance</item>
<item name="counterTextAppearance">@style/TextAppearance.Design.Counter</item>
<item name="counterOverflowTextAppearance">@style/TextAppearance.Design.Counter.Overflow</item>
</style>
<style name="AppTheme.TextFloatLabelAppearance" parent="TextAppearance.Design.Hint">
<!-- Floating label appearance here -->
<item name="android:textColor">@color/colorAccent</item>
<item name="android:textSize">20sp</item>
</style>
<style name="AppTheme.TextErrorAppearance" parent="TextAppearance.Design.Error">
<!-- Error message appearance here -->
<item name="android:textColor">#ff0000</item>
<item name="android:textSize">20sp</item>
</style>
</resources>
活动单元布局。xml
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Text hint here"
android:text="5,2" />
</android.support.design.widget.TextInputLayout>
聚焦:
无焦点:
错误消息:
通过材质组件库,您可以使用com.google.Android布料文本字段。text输入布局
。
可以应用自定义样式来更改颜色。
要更改提示颜色,必须使用以下属性:hintTextColor
和android:textColorHint
。
<style name="Custom_textinputlayout_filledbox" parent="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
<!-- The color of the label when it is collapsed and the text field is active -->
<item name="hintTextColor">?attr/colorPrimary</item>
<!-- The color of the label in all other text field states (such as resting and disabled) -->
<item name="android:textColorHint">@color/selector_hint_text_color</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>
要更改底线颜色,必须使用属性:box StrokeColor
。
<style name="Custom_textinputlayout_filledbox" parent="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
....
<item name="boxStrokeColor">@color/selector_stroke_color</item>
</style>
在这种情况下,您还应该使用选择器。类似的东西:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorPrimary" android:state_focused="true"/>
<item android:alpha="0.87" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
<item android:alpha="0.12" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0.38" android:color="?attr/colorOnSurface"/>
</selector>
也可以在布局中应用这些属性:
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
app:boxStrokeColor="@color/selector_stroke_color"
app:hintTextColor="?attr/colorPrimary"
android:textColorHint="@color/selector_hint_text_color"
...>
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">@color/accent</item>
<item name="colorControlHighlight">@color/accent</item>
欲了解更多信息,请检查此线程。
<style name="MyHintStyle" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/main_color</item>
</style>
并像这样使用它:
<android.support.design.widget.TextInputLayout
...
app:hintTextAppearance="@style/MyHintStyle">
<android.support.design.widget.TextInputLayout
...
app:hintTextAppearance="@style/MyHintStyle"
android:textColorHint="#c1c2c4">
感谢@Albanf
参考Google发布的新,如何更改浮动标签文本颜色? 在样式中设置、、没有帮助 这就是我现在拥有的:
我试图切换到新的材质组件主题,有一件事我似乎不能改变,那就是标签和下划线的颜色。 当我使用AppCompat主题时,它使用了colorAccent,但是新的MaterialComponents主题使用了colorPrimary。 如何覆盖MaterialComponents主题以仅在该场景中使用色彩口音? 我尝试过的事情: 扩展小部件。MaterialComponents样式为TextInputL
但不幸的是,它无法工作。 这是我今天尝试的最后一次尝试,但没有奏效: 和样式:
本文向大家介绍Android更改EditText下划线颜色样式的方法,包括了Android更改EditText下划线颜色样式的方法的使用技巧和注意事项,需要的朋友参考一下 前言 相信大家都知道,当使用AppCompatEditText(Edit Text)时,默认的下划线是跟随系统的#FF4081的颜色值的,通过改变这个值可以改变所有的颜色样式 有时候你想单独定义某一个界面的颜色样式,则可以这样做
然而,当我运行该应用程序时,我没有看到任何变化。更改背景本身: 将整个更改为-不是我想要的! 如何以编程方式更改、或的下划线颜色?我使用的是支持库的25.0.1版本。
问题内容: 我在这里有此代码: 首先,如您所见,它带有下划线()。其次,所有文字均为红色。那么,是否有将文本($ username)留为红色而下划线为黑的情况? 问题答案: 不能。您最好的方法是使用其他颜色的,但这并不是 真正的重点 。