I am using the new TextInputLayout from the design library. I am able to get it to show and to change the color of the floating label. Unfortunately the actual EditText hint is now always white.
I have tried changing the hintColor in XML, styles, and programmatically and also tried using the android.support.v7.widget.AppCompatEditText
but the EditText hint always shows white.
Here is my XML for my TextInputLayout and EditText
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.support.design:hintTextAppearance="#style/GreenTextInputLayout">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="#+id/city"
android:textColorHint="#color/black"
android:hint="#string/city" />
</android.support.design.widget.TextInputLayout>
And here is the style I am using for the TextInputLayout (I tried making the hintTextColor attribute black but didn't do anything for me):
<style name="GreenTextInputLayout" parent="#style/TextAppearance.AppCompat">
<item name="android:textColor">#color/homestory_green</item>
</style>
Define android:textColorHint in your application theme:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">#color/primary</item>
<item name="colorPrimaryDark">#color/primary_dark</item>
<item name="colorAccent">#color/accent</item>
<item name="android:textColorHint">#color/secondary_text</item>
</style>
Source
Or, in your layout, like:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.support.design:hintTextAppearance="#style/GreenTextInputLayout"
android:textColorHint="#color/secondary_text">
Create custom style in style.xml
<style name="EditTextHint" parent="TextAppearance.AppCompat">
<item name="colorAccent">#android:color/white</item>
<item name="android:textColorHint">#color/BackgroundtWhiteColor</item>
<item name="colorControlNormal">#color/BackgroundtWhiteColor</item>
<item name="colorControlActivated">#color/your color</item>
<item name="colorControlHighlight">#color/BackgroundtWhiteColor</item>
</style>
Then in your layout xml file, add theme attribute as below
<android.support.design.widget.TextInputLayout
android:theme="#style/EditTextHint"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.TextInputLayout>
hope this works
Add textColorHint property to your edit text
android:textColorHint="#F6F6F6"
or whichever color you want
got the same problem. Resolved by putting these lines in parent theme.
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#color/ColorPrimaryDark</item>
<item name="colorPrimaryDark">#color/ColorPrimaryDark</item>
<item name="colorAccent">#color/AccentColor</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:textColorHint">#color/BackgroundtWhiteColor</item>
<item name="colorControlNormal">#color/BackgroundtWhiteColor</item>
<item name="colorControlActivated">#ff0000</item>
<item name="colorControlHighlight">#color/BackgroundtWhiteColor</item>
<!-- Customize your theme here. -->
</style>
If you put these
<item name="android:textColorHint">#color/BackgroundtWhiteColor</item>
<item name="colorControlNormal">#color/BackgroundtWhiteColor</item>
<item name="colorControlActivated">#ff0000</item>
<item name="colorControlHighlight">#color/BackgroundtWhiteColor</item>
in a separate style and apply it to TextInputLayout or Edittext it won't appear. You HAVE to place it in application's parent theme.
With the Material Components library you can customize the TextInputLayout the hint text color using:
In the layout:
app:hintTextColor attribute : the color of the label when it is collapsed and the text field is active
android:textColorHint attribute: the color of the label in all other text field states (such as resting and disabled)
Something like:
<com.google.android.material.textfield.TextInputLayout
app:hintTextColor="#color/mycolor"
android:textColorHint="#color/text_input_hint_selector"
.../>
I'm not sure what causes your problem put this code works perfectly for me. I think it has something to do with using the correct xml namespace (xmlns). I'm not sure if using android.support.design without xml namespace attribute is supported. Or it has something to do with the textColorHint attribute you are using on the EditText itself.
Layout:
<android.support.design.widget.TextInputLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
app:hintTextAppearance="#style/GreenTextInputLayout">
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="test"
android:inputType="text" />
</android.support.design.widget.TextInputLayout>
Style:
<style name="GreenTextInputLayout" parent="#android:style/TextAppearance">
<item name="android:textColor">#00FF00</item>
</style>
Refer the below code it worked for me.But it will affect all your controls color.
<!-- In your style.xml file -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!--EditText hint color-->
<item name="android:textColorHint">#color/default_app_white</item>
<!-- TextInputLayout text color-->
<item name="colorControlActivated">#color/default_app_green</item>
<!-- EditText line color when EditText on-focus-->
<item name="colorControlHighlight">#color/default_app_green</item>
<!-- EditText line color when EditText in un-focus-->
<item name="colorControlNormal">#color/default_app_white</item>
</style>
In the TextInputLayout that holds the EditText, add:
android:textColorHint="someColor"
A lot answers but need only a line for this:
android:textColorHint="#000000"
<EditText
android:id="#+id/edtEmail"
android:textColorHint="#000000"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
if you are using the Material design library. Currently, I am using the version
implementation 'com.google.android.material:material:1.3.0-alpha01'
1 - Set color when TextInputLayout is resting.
<item name="android:textColorHint">#color/your_color_hint</item>
2 - Set color when TextInputLayout is floating/focused/tapped.
<item name="hintTextColor">#color/your_color_floating_hint</item>
3 - Set color of the line under TextInputLayout.
<item name="boxStrokeColor">#color/TextViewColor_line</item>
4 - Set color of the error under TextInputLayout.
<item name="boxStrokeErrorColor">#color/colorPrimary</item>
You can use android:textColorHint="#color/color_black" inside TextInputlayout It worked for me.
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="#dimen/dp_10"
android:textColorHint="#color/color_black"
app:hintTextAppearance="#style/TextLabel">
<EditText
android:id="#+id/et_state"
style="#style/profile_editTextStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="#string/billingState"
android:text="#string/billingState"
/>
</android.support.design.widget.TextInputLayout>
According to this:
https://code.google.com/p/android/issues/detail?id=176559
Try this:
<android.support.design.widget.TextInputLayout
android:textColorHint="#A7B7C2"
android:layout_width="match_parent"
android:layout_height="50dp">
<EditText
android:id="#+id/et_confirm_password"
android:textColor="#android:color/black"
android:hint="Confirm password"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.TextInputLayout>
It works in 23.1.1
Looks like the parent view had a style for a 3rd party library that was causing the EditText to be white.
android:theme="#style/com_mixpanel_android_SurveyActivityTheme"
Once I removed this everything worked fine.
try this may this help
edittext.addTextChangedListener(new TextWatcher() {
#Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "onTextChanged", 2000).show();;
//newuser.setTextColor(Color.RED);
edittext.setHintTextColor(Color.RED);
}
#Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
#Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "afterTextChanged", 2000).show();;
}
});
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="#+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name"
android:textColor="#color/black"
android:textColorHint="#color/grey"/>
</android.support.design.widget.TextInputLayout>
Use textColorHint to set the color that you want as the Hint color for the EditText. The thing is that Hint in the EditText disappears not when you type something, but immediately when the EditText gets focus (with a cool animation). You will notice this clearly when you switch focus away and to the EditText.
late but it may help someone i have done like this
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp"
android:textColorHint="#8cffffff">
<android.support.v7.widget.AppCompatEditText
android:id="#+id/email_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="#string/security_email"
android:inputType="textEmailAddress"
android:textColor="#color/white"
app:backgroundTint="#8cffffff" />
</android.support.design.widget.TextInputLayout>
<item name="colorAccent">#android:color/black</item>
change your colorAccent to your desired color inside your Theme,this will change your EditText line,Cursor as well as your hint
or you can also include this style inside your style.xml
<style name="TextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">#android:color/black</item>
<item name="android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">#android:color/black</item>
<item name="colorControlNormal">#android:color/black</item>
<item name="colorControlActivated">#android:color/black</item>
</style>
then inside your TextInputLayout you can put it like this
<android.support.design.widget.TextInputLayout
android:id="#+id/input_layout_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="#style/TextLabel">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableLeft="#drawable/password"
android:drawableStart="#drawable/password"
android:maxLines="1"
android:hint="password"
android:inputType="textWebPassword" />
</android.support.design.widget.TextInputLayout>
From the documentation:
The hint should be set on the TextInputLayout, rather than the EditText. If a hint is specified on the child EditText in XML, the TextInputLayout might still work correctly; TextInputLayout will use the EditText's hint as its floating label. However, future calls to modify the hint will not update TextInputLayout's hint. To avoid unintended behavior, call setHint(CharSequence) and getHint() on TextInputLayout, instead of on EditText.
Try setting android:hint and app:hintTextColor on TextInputLayout instead of on TextInputEditText.
<android.support.design.widget.TextInputLayout
android:id="#+id/input_layout_passdword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="#d3d3d3">
<EditText
android:id="#+id/etaddrfess_ciwty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#android:color/transparent"
android:bottomLeftRadius="10dp"
android:bottomRightRadius="50dp"
android:fontFamily="#font/frutiger"
android:gravity="start"
android:hint="#string/address_city"
android:padding="10dp"
android:textColor="#000000"
android:textColorHint="#000000"
android:textSize="14sp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
</android.support.design.widget.TextInputLayout>``
If you are using new androidx Material design library com.google.android.material
then you can use colorstatelist to control hint text color in focused, hovered and default state as follows. (inspired by this)
In res/color/text_input_box_stroke.xml put something like the following:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#fcc" android:state_focused="true"/>
<item android:color="#cfc" android:state_hovered="true"/>
<item android:color="#ccf"/>
</selector>
Then in your styles.xml you would put:
<style name="MtTILStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
<item name="boxStrokeColor">#color/text_input_box_stroke</item>
<item name="hintTextColor">#color/text_input_box_stroke</item>
</style>
Finally indicate your style in the actual TextInputLayout
For some reason you also need to set android:textColorHint for default text color of hint:
<com.google.android.material.textfield.TextInputLayout
android:id="#+id/my_layout_id"
style="#style/LoginTextInputLayoutStyle"
android:textColorHint="#ccf"
...
Here is the complete customization of the google material text input layout. This maybe helpful for you
<com.google.android.material.textfield.TextInputLayout
style="#style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="#dimen/_24sdp"
android:layout_marginTop="#dimen/_24sdp"
android:hint="#string/username"
android:textColorHint="#color/tint"
app:hintEnabled="true"
app:hintAnimationEnabled="false"
app:startIconDrawable="#drawable/ic_user"
app:startIconTint="#color/tint"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="#id/guideline"
app:boxCornerRadiusBottomEnd="#dimen/_45sdp"
app:boxCornerRadiusBottomStart="#dimen/_45sdp"
app:boxCornerRadiusTopEnd="#dimen/_45sdp"
app:boxCornerRadiusTopStart="#dimen/_45sdp"
app:boxStrokeColor="#color/red"
app:boxStrokeWidth="#dimen/_1sdp"
<!-- for password
app:passwordToggleEnabled="true"
app:passwordToggleTint="#color/tint" -->
>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="#dimen/_40sdp"
android:padding="0dp"
android:fontFamily="#font/poppins_medium"
android:textColor="#color/black"
android:inputType="textEmailAddress"/>
</com.google.android.material.textfield.TextInputLayout>
This Should 100% work
android:textColorHint="#color/white"
You must set hint color on TextInputLayout.
When I tried to set theme attribute to TextInputLayout, the theme was also getting applied to its child view edittext, which I didn't wanted.
So the solution which worked for me was to add a custom style to the "app:hintTextAppearance" property of the TextInputLayout.
In styles.xml add the following style:
<style name="TextInputLayoutTextAppearance" parent="TextAppearance.AppCompat">
<item name="android:textColor">#color/text_color</item>
<item name="android:textSize">#dimen/text_size_12</item>
</style>
And apply this style to the "app:hintTextAppearance" property of the TextInputLayout as below:
<com.google.android.material.textfield.TextInputLayout
android:id="#+id/mobile_num_til"
android:layout_width="0dp"
android:layout_height="#dimen/dim_56"
app:layout_constraintStart_toStartOf="#id/title_tv"
app:layout_constraintEnd_toEndOf="#id/title_tv"
app:layout_constraintTop_toBottomOf="#id/sub_title_tv"
android:layout_marginTop="#dimen/dim_30"
android:padding="#dimen/dim_8"
app:hintTextAppearance="#style/TextInputLayoutTextAppearance"
android:background="#drawable/rect_round_corner_grey_outline">
<com.google.android.material.textfield.TextInputEditText
android:id="#+id/mobile_num_et"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="#string/mobile_number"
android:gravity="center_vertical"
android:background="#android:color/transparent"/>
</com.google.android.material.textfield.TextInputLayout>
Try code below:
The high light color is White:
<android.support.design.widget.TextInputLayout
android:id="#+id/input_layout_mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="#style/TextStyle"
>
<EditText
android:id="#+id/input_mobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:drawablePadding="14dp"
android:drawableLeft="8dp"
android:textColor="#color/white"
android:hint="Mobile" />
</android.support.design.widget.TextInputLayout>
style: TextStyle
<style name="TextStyle" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">#color/white</item>
<item name="android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">#color/white</item>
<item name="colorControlNormal">#color/white</item>
<item name="colorControlActivated">#color/white</item>
</style>
Here is my experience with this similar issue & the required solution.
Requirement:
Need to create customize TextInputEditText (can say some should be transparent and some should be not but use custom colors for various events)
Problem faced:
android:textColorHint is not working as required.
Solutions tried, which failed:
Used android:textColorHint in style and applied to TextInputEditText. No results or difference.
Set android:textColorHint in application's theme applied. It do helped but it was now set for entire application. (Not up-to mark to requirement)
After a lot of RnD, the best SOLUTION found was in an article which described that we need to apply theme to TextInputLayout or to it's parent view rather then only applying style to TextInputEditText or to it's parent view.
Please check TextInputLayout proper Theming which told that how we are at wrong track.
I only wanted to change the label color when it is lifted to top. But setting textColorHint changes the color at every state. So, this worked for me:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="colorControlActivated">#color/colorPrimary</item>
...
</style>
This will change the color when the input is focused.
Use TextInputLayout.setDefaultHintTextColor
Related
I have an edit profile screen with bunch of TextInputEditTexts. It worked fine before, but now on focus underline, cursor and hint become invisible.
Has anyone faced the same problem?
...
<com.google.android.material.textfield.TextInputLayout
android:id="#+id/tilFirstName"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="#id/ivContactIcon"
app:layout_constraintEnd_toEndOf="#id/gEnd"
app:layout_constraintTop_toBottomOf="#id/toolbar"
android:layout_marginStart="#dimen/margin_32"
android:layout_marginTop="#dimen/margin_24"
android:hint="#string/profile_edit_hint_first_name"
>
<com.google.android.material.textfield.TextInputEditText
android:id="#+id/etFirstName"
android:layout_height="wrap_content"
style="#style/FontRoboRegularSizeMFontPrimaryOneLineMatchWrap"
tools:text="Oleh"
android:inputType="textCapWords"
android:maxLines="1"
android:nextFocusForward="#id/etLastName"
android:imeOptions="actionNext"
/>
</com.google.android.material.textfield.TextInputLayout>
...
UPDATE:
After changing background of the root element it's clear that these elements become white. not disappeared.
The default style used by the TextInputLayout is
<style name="Widget.MaterialComponents.TextInputLayout.FilledBox" parent="Base.Widget.MaterialComponents.TextInputLayout">
<!-- underline color in FilledBox style -->
<item name="boxStrokeColor">#color/mtrl_filled_stroke_color</item>
<!-- The color of the label when it is collapsed and the text field is active -->
<item name="hintTextColor">?attr/colorPrimary</item>
....
</style>
The mtrl_filled_stroke_color is based on the colorOnSurface.
Check in your theme the colorPrimary and the colorOnSurface values, or use a custom style with the same attributes described above.
If you're struggling like I did and the above solutions didn't work, it may be that your project's theme was set up with a white colorPrimary.
To fix you could create a custom style for your TextEdits and apply it to each:
styles.xml:
<style name="AppThemeCorrectPrimaryColor" parent="AppTheme">
<item name="colorPrimary">#color/notAWhiteColor</item>
</style>
EditText:
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="#style/AppThemeCorrectPrimaryColor"
/>
I created the style for the TextInputLayout and define the colorControlActivated like
<style name="Widget.AppTheme.TextInputLayout.FilledBox.Dense" parent="Widget.MaterialComponents.TextInputLayout.FilledBox.Dense">
<item name="hintTextColor">#color/black</item>
<item name="boxBackgroundColor">#color/greyLight</item>
<item name="boxStrokeWidth">0dp</item>
<item name="colorControlActivated">#color/orange</item>
</style>
and use theming instead of styling on the TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:theme="#style/Widget.AppTheme.TextInputLayout.FilledBox.Dense"
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>
I can't seem to get rid of the black underline from Exposed Dropdown Menu done according to material design guide in my android UI.
The dropdown looks like this:
I have tried setting background to null, transparent or custom shape. app:boxBackgroundMode="none" doesn't work either.
<com.google.android.material.textfield.TextInputLayout
android:id="#+id/spinner_age"
style="#style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#drawable/bg_rounded_button"
android:hint="Age">
<AutoCompleteTextView
android:id="#+id/age_dropdown"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#android:color/transparent"/>
</com.google.android.material.textfield.TextInputLayout>
Ideally the dropdown would look like a button without the underline. How do I get rid of it?
Please change your this line
android:background="#android:color/transparent"
With
android:background="#00000000"
Make background = null
<AutoCompleteTextView
android:id="#+id/age_dropdown"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#null"/>
just add this line to remove the underline
android:inputType="textNoSuggestions"
Just use the standard style #style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu and
You don't need to use a custom background shape, you can just use the
app:boxCornerRadius* attributes to define the rounded shape.
Something like:
<com.google.android.material.textfield.TextInputLayout
style="#style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
app:boxCornerRadiusBottomEnd="32dp"
app:boxCornerRadiusTopEnd="32dp"
app:boxCornerRadiusBottomStart="32dp"
app:boxCornerRadiusTopStart="32dp"
app:boxStrokeColor="#color/myselector"
...>
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#null"
/>
</com.google.android.material.textfield.TextInputLayout>
To change the color of the line under the component, you have to change the app:boxStrokeColor attribute. Just customize the selector as you prefer:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="0" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
<item android:alpha="0" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0" android:color="?attr/colorOnSurface"/>
</selector>
This is the result:
Pay attention to this note in doc:
Note: When using a filled text field with an EditText child that is not a TextInputEditText, make sure to set the EditText's android:background to #null. This allows TextInputLayout to set a filled background on the EditText.
Alternative:
With the new version 1.1.0 you can also use the shapeAppearanceOverlay attribute to customize the shape of your component.
Just use:
<com.google.android.material.textfield.TextInputLayout
style="#style/MyFilledBox_ExposedDropdownMenu
...>
<AutoCompleteTextView
android:background="#null"
... />
</com.google.android.material.textfield.TextInputLayout>
and this style:
<!-- Rounded -->
<style name="MyFilledBox_ExposedDropdownMenu" parent="#style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu">
<item name="shapeAppearanceOverlay">#style/ShapeAppearanceOverlay.MyApp.TextInputLayout.Rounded</item>
<item name="boxStrokeColor">#color/myselector</item>
</style>
<style name="ShapeAppearanceOverlay.MyApp.TextInputLayout.Rounded" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">32dp</item>
</style>
Setting boxStrokeWidth = 0dp would solve it
Can I make label text color on TextInputLayout different than the editText hint text color
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="#dimen/layoutMargin16"
android:textColorHint="#color/green"
app:hintTextAppearance="#style/textLayoutInputSize">
<EditText
android:id="#+id/editTextFirstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="#dimen/layoutMargin16"
android:textColorHint="#color/blueColorButton"
android:hint="#string/first_name" />
</android.support.design.widget.TextInputLayout>
I have this code however android:textColorHint="#color/blueColorButton"
how to set text color for it (different color than the TextInputLayoutlabel)
Image 1
Image 2
You need to set theme in TextInputLayout. I attach one example. I hope it 's works for you.
<android.support.design.widget.TextInputLayout
android:theme="#style/EditTextTheme">
</android.support.design.widget.TextInputLayout>
<style name="EditTextTheme" parent="TextAppearance.AppCompat">
<item name="android:textColorHint">#color/colorWhiteAlpha</item>
<item name="android:textSize">#dimen/font_16sp</item>
<item name="colorAccent">#color/colorWhite</item>
<item name="colorControlNormal">#color/colorWhiteAlpha</item>
<item name="colorControlActivated">#color/colorWhiteAlpha</item>
<item name="android:textColorHighlight">#color/colorWhiteAlpha</item>
<item name="android:textColorLink">#color/colorWhiteAlpha</item>
</style>
I try to use the TextInputLayout, I success changing the color of the floating label by following this post, using android:theme="#style/TextLabel" makes floating label color change. However, it only works for Android version 5.0 and above.
For lower version of Android, I use app:hintTextAppearance="#style/TextAppearance.AppCompat". Here is my code:
<style name="EditTextHint" parent="TextAppearance.AppCompat">
<item name="android:textColor">#bbbbc9</item>
<item name="android:textColorHint">#bbbbc9</item>
<item name="android:textSize">11.5sp</item>
</style>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintTextAppearance="#style/EditTextHint">
<EditText
android:id="#+id/fet_input_left"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#android:color/transparent"
android:paddingTop="7.5dp"
android:textColor="#595968"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
The problem is that the color of floating label only change to #bbbbc9 when user tab on the EditText. If user tab on the other EditText, the color is changed to default. Here is the picture:
Correct Color: bbbbc9
Error Colorlt: default color
If you have any suggestions, please let me know. Any ideas would be appreciated.
Thank you in advance!
After doing "on the fly", I try to add android:textColorHint="#bbbbc9" in TextInputLayout and it works. Here is the full code:
<style name="EditTextHint" parent="TextAppearance.AppCompat">
<item name="android:textColor">#bbbbc9</item>
<item name="android:textColorHint">#bbbbc9</item>
<item name="android:textSize">11.5sp</item>
</style>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColotHint="#bbbbc9"
app:hintTextAppearance="#style/EditTextHint">
<EditText
android:id="#+id/fet_input_left"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#android:color/transparent"
android:paddingTop="7.5dp"
android:textColor="#595968"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
Do you have open two style.xml? one is style.xml while another is style-21.xml ?
in style-21.xml, it is used for android-21 / android 5.0 or above
original one is for lower support
This worked for me;
Make a custom style as;
<style name="TextFloatLabelAppearance" parent="TextAppearance.Design.Hint">
<!-- Floating label appearance here -->
<item name="android:textColor">#color/colorLightGrey</item>
</style>
And use ;
<android.support.design.widget.TextInputLayout
android:id="#+id/store_til"
app:hintTextAppearance="#style/TextFloatLabelAppearance"
android:textColorHint="#color/colorWhite"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="#+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#color/colorWhite"
android:hint="#string/your_string">
</AutoCompleteTextView>
This is what I did to change the floating text to a custom color.
I tried to change TextInputLayout by setting custom style for its edittext as you see below:
layout:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatEditText
android:id="#+id/pass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:textSize="15sp"
android:theme="#style/MyEditTextTheme" />
</android.support.design.widget.TextInputLayout>
style.xml:
<style name="MyEditTextTheme">
<item name="colorControlNormal">#color/colorPrimary</item>
<item name="colorControlActivated">#color/colorPrimary</item>
<item name="colorControlHighlight">#color/colorPrimary</item>
</style>
I faced 2 problems:
1.It works fine with activities but in fragments it has no change and the colors are as colorAccent.
2.Even in activities, after setting .setErrorEnabled(false); the edittext bottom color changes to colorAccent.
What is wrong? Is it a bug in android?