我有一个简单的 EditText 字段,它在登录页面上显示用户的电话号码。初次登录后,电话号码字段被禁用。
这在我几乎所有的设备上看起来都很棒(这张截图来自三星 Galaxy S):
但是,在我的 LG Nitro 上,禁用的 EditText 字段中的文本是不可读的(如果我放大高分辨率屏幕截图,我几乎可以看到白色文本):
我从 EditText 中删除了所有自定义样式规则,并且出现了同样的问题,所以我认为这只是手机系统默认颜色的错误选择。
问题1:谁能确认我的诊断是否正确?
我可以使文本可读的唯一方法是在代码中将文本设置为深灰色:
if (fieldDisabled)
{
// Some devices use their own default style for a disabled text field,
// which makes it impossible to read its text, e.g. the LG Nitro.
//
// The workaround is to override the text color here.
mPhoneNumber.setTextColor(Color.DKGRAY);
}
之后文本在所有设备(包括 LG Nitro)上都很容易阅读:
我将我的自定义样式设置为使用@color/black
而不是现有颜色,但文本仍显示为白色。
问题 2:我可以使用更好的解决方法吗?
我的 LG Nitro 是运行 OS 2.3.5 的型号 LG-P930。
我的 XML
下面是我正在使用的 XML 的片段。
资源/布局/myscreen.xml:
<EditText
...
android:textAppearance="@style/MyStyle">
</EditText>
res/values/styles.xml:
<style name="MyStyle">
<item name="android:textSize">14dp</item>
<item name="android:textColor">@color/blue</item>
</style>
资源/值/colors.xml:
<color name="white">#ffffffff</color>
<color name="blue">#ff0000ff</color>
<color name="black">#ff000000</color>