我有一个简单的EditText字段,显示登录页面上用户的电话号码。初次登录后,电话号码字段被禁用。在某些设备上禁用时,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硝基)阅读:
我将自定义样式设置为使用@color/black
代替现有颜色,但文本仍显示为白色。
问题2:有没有更好的解决方法我可以使用?
我的LG Nitro是运行OS 2.3.5的型号LG-P930。
我的XML
下面是我使用的XML的片段。
RES /布局/ myscreen.xml:
<EditText
...
android:textAppearance="@style/MyStyle">
</EditText>
RES /值/ styles.xml:
<style name="MyStyle">
<item name="android:textSize">14dp</item>
<item name="android:textColor">@color/blue</item>
</style>
RES /值/ colors.xml:
<color name="white">#ffffffff</color>
<color name="blue">#ff0000ff</color>
<color name="black">#ff000000</color>
而不是禁用的EditText后,您可以进行的EditText可聚焦假的初始状态。所以它不会得到重点,它会看起来很完美 – Sumant
这是一个很好的建议,并做了我想要的很多东西。仅供参考,我需要调用setFocusableInTouchMode(false)以及setFocusable(false)才能使其工作。然而,缺点是它弄乱了我的焦点逻辑(我可以修复),更重要的是,文本字段现在看起来像一个启用的文本字段而不是禁用的字段。 –
是的,我认为通过你的问题解决.... :) – Sumant