6

Hi I am using TextInputLayout in my app. I want to set hint text color and floating label color(both focused and unfocused) to white. I have tried below code.

  <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.v7.widget.AppCompatEditText>
</android.support.design.widget.TextInputLayout>

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

It is working properly for lollipop but not for lower versions.How can i achieve the same in lower versions as well?

andro-girl
  • 7,989
  • 22
  • 71
  • 94

2 Answers2

0

I got answer for this. In OS versions lower than lollipop we have to set the text color as white(in my case) in the app theme. Then it will work.

andro-girl
  • 7,989
  • 22
  • 71
  • 94
0

Give the same style to Text Input Style that you are giving to Edittext

 <!--Text Input Style-->
    <style name="styleTextInputLayout" parent="Widget.Design.TextInputLayout">
        <item name="android:textColor">?android:attr/textColorSecondary</item>
        <item name="android:textColorHint">?android:attr/textColorSecondaryInverse</item>
    </style>


 <!--EditText-->
    <style name="styleEditText" parent="Widget.AppCompat.EditText">
        <item name="android:textColor">?android:attr/textColorSecondary</item>
        <item name="android:textColorHint">?android:attr/textColorSecondaryInverse</item>
    </style>

give your respective colors to tags above

<android.support.design.widget.TextInputLayout
                    style="@style/styleTextInputLayout"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content">

                    <EditText
                        android:id="@+id/edtTextFirstName"
                        style="@style/styleEditText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/dimen_5_dp"
                        android:layout_marginTop="@dimen/dimen_5_dp"
                        android:hint="@string/hint_first_name"
                        android:imeOptions="actionNext"
                        android:inputType="textPersonName|textCapWords"
                        android:singleLine="true" />
                </android.support.design.widget.TextInputLayout>

above code works with

compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'

I was facing problem with 22 version, may be there is some bug because of which Text Input ignores style provided to it.

Solution for com.android.support:design below 23 is:

style.xml

 <style name="styleTextInputTextAppearance" parent="TextAppearance.AppCompat">
        <item name="android:textColorHint">?android:attr/textColorSecondaryInverse</item>
    </style>

set theme to TextInputLayout

<android.support.design.widget.TextInputLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:theme="@style/styleTextInputTextAppearance">

                    <EditText
                        android:id="@+id/edtTextTowerName"
                        style="@style/styleEditText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/dimen_5_dp"
                        android:layout_marginTop="@dimen/dimen_5_dp"
                        android:hint="@string/hint_tower_name"
                        android:imeOptions="actionNext"
                        android:inputType="textCapWords"
                        android:singleLine="true" />
                </android.support.design.widget.TextInputLayout>
DeltaCap019
  • 6,532
  • 3
  • 48
  • 70