当inputType =“textpassword”时,EditText提示显示额外的空格

时间:2011-08-30 14:57:00

标签: android android-edittext

只是想知道,我是唯一一个遇到这种“奇怪”行为的人。

在我的活动中放置EditText并设置它 inputType =“textPassword”如下:

<EditText android:text="" android:id="@+id/EditText01" 
            android:hint="This is a hint" android:inputType="textPassword" 
            android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>

提示在单词之间显示更大/双倍的空格。

如果我删除了inputType属性,它将全部恢复正常。 我找不到有关此行为的已知问题。

BTW-如果你想知道为什么这很重要(不是那么多)试试 将两个EditText小部件一个放在另一个之下并设置inputType 其中一个“textpassword”它看起来不太好。 有关如何更改密码或其他edittexts使用相同格式的想法吗?

谢谢

PS。首先在这里添加了一个问题:http://groups.google.com/group/android-developers/browse_thread/thread/88738bb8d8046f6f但我找不到答案。

2 个答案:

答案 0 :(得分:8)

这是因为在密码字段的情况下,字体会自动设置为等宽字体。在密码字段上设置android:typeface="normal"没有帮助。

来自TextView sources的代码:

if (password) {
    setTransformationMethod(PasswordTransformationMethod.getInstance());
    typefaceIndex = MONOSPACE;
} else if ((mInputType&(EditorInfo.TYPE_MASK_CLASS
            |EditorInfo.TYPE_MASK_VARIATION))
            == (EditorInfo.TYPE_CLASS_TEXT
                    |EditorInfo.TYPE_TEXT_VARIATION_PASSWORD)) {
    typefaceIndex = MONOSPACE;
}

如果没有为提示实现带覆盖字体的自定义控件,我找不到解决方案。

P.S。:有一种解决方案,但并不总是可以接受 - 在其他EditText上将字体设置为等宽字体。

答案 1 :(得分:6)

执行mEditText.setTypeface(Typeface.DEFAULT);为我解决了问题。

相关问题