正如问题所说:在运行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"
答案 0 :(得分:18)
谁遇到同样的问题;
如果您在
中使用了edittextandroid.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