How to set color of hints in TextInputlayout?

只谈情不闲聊 提交于 2019-12-24 07:47:11

问题


I want to change the hint color of the Text input layout and its associated Edit Text color. I tried to use 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"
                           />

where my style.xml is.

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

when i change the #FFFFFF to #000000 it displays black color hint in all Textinputlayout of the application.

My need is, for one screen of the application which has white background, and on that white back ground i have to show Textinputlayout hint,text,edit text color in black font.


回答1:


Follow it -

<android.support.design.widget.TextInputLayout
  ...
    app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
    android:textColorHint="@color/colorPrimary">

On style.xml -

<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/black</item>
</style>



回答2:


First of all do not specify the the property in your parent style. Because if you do so It will take the property for your whole application. Instead of doing that create a different style for TextInputLayout.

One more thing TextInputLayout used with android support library will not give you expected output. So you should migrate your Project to AndroidX and you should use Material Components library.

Add that library in your app module level gradle file.

implementation 'com.google.android.material:material:1.1.0-alpha07'

Here see the following

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

Here android:textColorHint property will handle the hint color for editTextField and hintTextColor property will handle the hint color for floating text label.

After Creating Style, Assign It to your TextInutLayout. When you don't want this style on next page don't assign the style property.

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


This will give you your expected output.

For more information read the documentation here on

https://material.io/develop/android/components/text-input-layout/

They have specified all the attributes that can be used for TextInputLayout.



来源:https://stackoverflow.com/questions/47546860/how-to-set-color-of-hints-in-textinputlayout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!