我想更改文本输入布局的提示颜色及其关联的编辑文本颜色。我尝试使用app:hintTextAppearance =“@ color / black”
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_edit_contact_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textColorHighlight="@color/black"
app:hintTextAppearance="@color/black"
app:errorTextAppearance="@style/EmailErrorAppearance">
<EditText
android:id="@+id/et_input_edit_contact_name"
android:hint="@string/hint_name_add"
android:inputType="textEmailAddress"
android:textColor="@android:color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
我的style.xml是。
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#FFFFFF</item>
<item name="colorControlActivated">#FFFFFF</item>
<item name="android:textColorHint">@color/black</item>
</style>
</resources>
当我将 #FFFFFF 更改为 #000000 它会在应用程序的所有Textinputlayout中显示黑色提示。
我的需求是,对于具有白色背景的应用程序的一个屏幕,并且在白色背景上,我必须显示Textinputlayout提示,文本,编辑黑色字体的文本颜色。
答案 0 :(得分:0)
跟着它 -
<android.support.design.widget.TextInputLayout
...
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
android:textColorHint="@color/colorPrimary">
在style.xml
-
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/black</item>
</style>
答案 1 :(得分:0)
首先不要以您的父样式指定该属性。因为如果这样做,它将带走整个应用程序的属性。不用那样做,而是为TextInputLayout创建不同的样式。
与Android支持库一起使用的TextInputLayout不会再给您带来预期的输出。因此,您应该将项目迁移到AndroidX,并使用Material Components库。
将该库添加到您的应用模块级gradle文件中。
implementation 'com.google.android.material:material:1.1.0-alpha07'
在这里看到以下内容
<style name="TextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="boxBackgroundMode">outline</item>
<item name="boxStrokeColor">@android:color/black</item>
<item name="android:textColorHint">@android:color/black</item>
<item name="hintTextColor">@android:color/white</item>
</style>
此处android:textColorHint
属性将处理editTextField的提示颜色,而hintTextColor
属性将处理浮动文本标签的提示颜色。
创建样式后,将其分配给TextInutLayout。如果您不希望在下一页上使用此样式,则不要分配style属性。
<com.google.android.material.textfield.TextInputLayout
style="@style/TextInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
这将为您提供预期的输出。
有关更多信息,请阅读此处的文档
https://material.io/develop/android/components/text-input-layout/
他们已经指定了可用于TextInputLayout的所有属性。