android - EditText 提示在 inputType ="textpassword"时显示额外的空格

标签 android android-edittext

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

当在我的 Activity 中放置一个 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 属性,一切都会恢复正常。 我找不到关于此行为的已知问题。

顺便说一句 - 如果您想知道为什么这很重要(没那么重要),请尝试 将两个 EditText 小部件一个放在另一个下方并设置 inputType 其中之一到“textpassword”看起来不太好。 关于如何更改密码或其他编辑文本以使用相同格式的任何想法?

谢谢

附言。这里先加问题:http://groups.google.com/group/android-developers/browse_thread/thread/88738bb8d8046f6f但我没有找到答案。

最佳答案

发生这种情况是因为在密码字段的情况下,字体自动设置为等宽字体。在密码字段上设置 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 上将字体设置为等宽。

关于android - EditText 提示在 inputType ="textpassword"时显示额外的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245220/

相关文章:

Android - 运行时 Dagger 注入(inject)

android - 编译具有相同文件名但具有不同路径的源文件

android - 在 LinearLayout 中嵌套 RelativeLayouts

Android EditText点击导航错误

java - 在 Java 中替换字符串时出现问题

android - 如何在 Android 中以编程方式在 EditText 中设置 Id

android - onRequestPermissionResult 的 switch case 需要常量表达式错误

android - 为 ARM 编写的原生 android 代码如何在 x86 上运行?

android编辑文本问题在底部显示蓝线

android - 有没有办法将 OnClickListener 重置为其默认的 Android 实现?