Android 4.3 +,android:textColorHint不起作用,提示颜色始终为白色

时间:2014-02-10 10:44:22

标签: android android-4.4-kitkat android-4.3-jelly-bean

正如问题所说:在运行Android 4.3+的设备上测试应用程序(也在4.4上测试)时,提示的颜色(对于EditText)变为白色,无论我将其设置为什么颜色,它都保持白色。由于EditText的背景为白色,因此肉眼无法看到提示!

我用Google搜索并用Google搜索,找不到有同样问题的人。该应用是使用android:minSdkVersion="8"android:targetSdkVersion="15"构建的。 EditText看起来像这样:

 <EditText
            android:id="@+id/editText3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/my_background"
            android:ems="10"
            android:textColorHint="@color/BlueViolet"
            android:hint="@string/my_hint"
            android:inputType="number"
            android:tag="21_0" />

起初它使用的是默认android:textColorHint,我认为Android 4.3+可能因某些原因将默认设置更改为白色。但事实并非如此,因为无论我设定的颜色是什么,它总是白色的。

我知道fill_parent已被弃用,但应用程序很久以前就已构建,但由于提示消失而无法使用。任何帮助表示赞赏!谢谢!

编辑: 使用String-resource提示时似乎会出现“错误”。这有效:android:hint="Hello world"虽然不是android:hint="@string/my_hint"

2 个答案:

答案 0 :(得分:18)

谁遇到同样的问题;

如果您在

中使用了edittext
android.support.design.widget.TextInputLayout

你应该把你的

android:textColorHint="@color/BlueViolet"
TextInputLayout中的

<android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textColorHint="@android:color/white">

                <AutoCompleteTextView
                    android:id="@id/etextEmail"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/prompt_card"
                    android:inputType="textEmailAddress"
                    android:maxLines="1"
                    android:singleLine="true"
                    android:textColor="@android:color/white"/>

            </android.support.design.widget.TextInputLayout>

答案 1 :(得分:1)

从Android 4.3+开始,似乎不再可能按如下方式制作字符串资源(不确定它是否曾经以这种方式工作):

<string name="my_hint"><font size="13" fgcolor="#ffbbbbbb">Hello world</font></string>

如果你这样做,他们会变成白色。所以你坚持用这种方式创建String-resource:

<string name="my_hint">Hello world</string>

然后使用TextView / EditText上的属性编辑提示的颜色。要改变大小,似乎仍然可以这样做:

 <string name="my_hint"><small><small>Hello world</small></small></string>

我通过阅读这个答案的评论找到了这一点:https://stackoverflow.com/a/11577658/2422321,作者:Edward Falk