【问题标题】:EditText hint shows extra spaces when inputType="textpassword"当 inputType="textpassword" 时 EditText 提示显示额外的空格
【发布时间】:2011-08-30 14:57:00
【问题描述】:

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

在我的活动中放置一个 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”看起来不太好。 关于如何更改密码或其他编辑文本以使用相同格式的任何想法?

谢谢

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

【问题讨论】:

    标签: android android-edittext


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的回答。它帮助了我。对我来说,使用 typeface="monospace" 解决方案。事情只是到处都是一样的。
    【解决方案2】:

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

    【讨论】:

    • 不错的解决方案。我为此奋斗了 4 小时,终于得到了这个,谢谢伙计
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 2020-05-17
    • 2011-07-31
    • 2013-04-27
    • 1970-01-01
    • 2011-06-24
    相关资源
    最近更新 更多