Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android colorControlNormal xml attributes doesn't work pre-Lollipop

I've been trying to change the color of the EditText line on the bottom, but my EditText still doesn't wanna change the color, but it's using the style from Material.

I've tried to change the color following these answer: link

So I have an EditText with the Material form but not the colors I've set.

I've put appcompat-v7 in my Gradle config file, and it's already working for the color primary.

<style name="AppBaseTheme.MiddleTheme.Widget.EditText" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/middle_primary</item>
    <!-- Those 3 lines are staying in red war in IntelliJ but it does build the project -->
    <item name="android:colorControlNormal">@color/middle_sqool_primary</item>
    <item name="android:colorControlActivated">@color/middle_sqool_primary</item>
    <item name="android:colorControlHighlight">@color/middle_sqool_primary</item>            
</style>
like image 710
Ektos974 Avatar asked Mar 05 '15 16:03

Ektos974


2 Answers

You have to set the colorControlActivated, colorControlHighlight and colorControlNormal in your app theme (or activity theme) not in your edittext style.

Something like this:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light">
    <item name="colorControlNormal">@color/middle_sqool_primary</item>
    <item name="colorControlActivated">@color/middle_sqool_primary</item>
    <item name="colorControlHighlight">@color/middle_sqool_primary</item>
</style>
like image 137
Gabriele Mariotti Avatar answered Nov 18 '22 09:11

Gabriele Mariotti


As a workaround, try using android.support.v7.widget.AppCompatEditText rather than EditText. You should always use that for programmatically created views.

Pretty sure you made it, but be sure you are editing themes in the values folder and not in the values-v21 one (if any).

like image 40
natario Avatar answered Nov 18 '22 08:11

natario