I am using EditText
with TextInputLayout
. I just want to change the floating hint color of TextInputLayout
if the EditText is disabled. I tried with selector it is not working.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:textColor="@color/darkGray" />
<item android:state_pressed="false" android:state_focused="false" android:textColor="@color/lightGray"/>
</selector>
If you want to change hint of every TextInputLayout
with same color you can change it from style
with below code.
<style name="income" parent="TextAppearance.AppCompat">
<item name="android:textColor">@color/green</item>
<item name="android:textColorHint">@color/green</item>
<item name="colorAccent">@color/green</item>
<item name="colorControlNormal">@color/green</item>
<item name="colorControlActivated">@color/green</item>
<item name="colorControlHighlight">@color/green</item>
<item name="android:textColorHighlight">@color/green</item>
</style>
here I have used this code for only one TextInputLayout
and it has changed its hint color, text color, color of textinputlayout when selected, unselected too.
<android.support.design.widget.TextInputLayout
android:id="@+id/input_income"
style="@style/income"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/input_days"
android:layout_margin="10dp"
android:hint="Enter Monthly Take Home Income"
android:textColorHint="#18c418"
android:theme="@style/income"
app:hintAnimationEnabled="true">
</android.support.design.widget.TextInputLayout>
Using android:theme
is important to apply it for lollipop and above.
There's one method called setHintTextAppearance(int styleId)
in TextInputLayout
class. You can use this method to set difference colors to hint text on basis of enabled/disabled state.
Example :
//for disabled editText
mEditText.setEnabled(false);
mTextInoutLayout.setHintTextAppearance(R.style.CustomHintDisabled);
//for enablededitText
mEditText.setEnabled(true);
mTextInoutLayout.setHintTextAppearance(R.style.CustomHintEnabled);
And in your styles.xml
<style name="CustomHintDisabled" parent="YourBaseTheme.TextAppearance">
<item name="textColor">@color/gray</item>
</style>
<style name="CustomHintEnabled" parent="YourBaseTheme.TextAppearance">
<item name="textColor">@color/black</item>
</style>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With