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



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

我用谷歌搜索了又用谷歌搜索,找不到有相同问题的人。该应用程序是使用 android:minSdkVersion="8"android:targetSdkVersion="15" 构建的。编辑文本如下所示:

 <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已被弃用,但该应用程序是很久以前构建的,但由于提示消失,现在无法使用。任何帮助不胜感激!谢谢!

编辑:使用字符串资源作为提示时似乎会出现"错误"。这有效:android:hint="Hello world"虽然这不android:hint="@string/my_hint"

对于与同样问题作斗争的人;

如果您在

android.support.design.widget.TextInputLayout

你应该把你的

android:textColorHint="@color/BlueViolet"

在文本输入布局中

<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>

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

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

如果你这样做,它们会变成白色。因此,您只能以这种方式创建字符串资源:

<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,爱德华·福尔克

除了Erhan的回答或如果您正在使用TextInputLayout小部件,

我发现使用 app:hintTextColor 而不是android:textColorHint效果最好

相关内容

  • 没有找到相关文章

最新更新