Edittext color is white in appcompat 22.2

…衆ロ難τιáo~ 提交于 2019-11-30 23:57:29

I'd recommend you to create a theme/style only for your EditText. Appcompatuses by default the android:textColorSecondary as the color for the bottom line of the EditText though you haven't defined this in your Theme so it's hard to tell why your bottom line, text and hint is colored in white.

Here's an example for a separate Theme for EditText's

<style name="ThemeEditTextLight">
    <!-- bottom line color -->
    <item name="colorControlNormal">#000000</item>
    <!-- text color -->
    <item name="android:textColor">#000000</item>
    <!-- hint text color -->
    <item name="android:textColorHint">#BDBDBD</item>
</style>

And then simply set the Theme to your EditText:

 <EditText
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="My hint"
     android:theme="@style/ThemeEditTextLight" />

This approach gives you much more control over the coloring of your EditTexts.

Kavin Prabhu

Okie, I fixed it!

What I was doing was, I want to display ToolBar content in white color as my ToolBar is dark so I used this line

<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item> in styles.xml

This was working fine with appcompat-v7:21.+.

But in appcompat-v7:22.2.0 as the app:theme was depreciated (mentioned by @Guillaume Imbert in his answer).

So here was the confusion. I didn't use 'app:theme` any where in my project but it still keep showing me warning. So again I googled and found the this link.

Which leads me to following blog by Chris Banes clearly explained about it.

Now I removed <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item> from styles.xml. So my ToolBar content is dark (Black).

Finally adding android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" in my ToolBar did the trick, So my toolbar code looks like

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/action_bar_size_x2"
    android:background="@color/myPrimaryColor"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

So this may help someone.

Thanks for giving me the good lead, both @reVerse and @Guillaume Imbert. Without your answers I would not able to fix this. Thanks a Lot :)

First, you should use EditText, and not the compat one. At runtime, the support library replaces the EditText with the appcompat one only if needed.

Regarding your problem, appcompat 22.2 introduces the use of android:theme instead of app:theme. I think the item theme in your style was not applied with the previous version of appcompat, and it is now.

By the way, I don't know if using the theme item into a theme is a good practice.

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