Подсказка EditText показывает дополнительные пробелы, когда inputType = "textpassword" - PullRequest
10 голосов
/ 30 августа 2011

Просто удивился, я единственный, кто столкнулся с таким "странным" поведением.

При размещении 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" это не выглядит хорошо. Любая идея о том, как изменить пароль или другие edittexts, чтобы использовать тот же формат?

Спасибо

PS. Сначала был добавлен вопрос: http://groups.google.com/group/android-developers/browse_thread/thread/88738bb8d8046f6f но я не нашел ответа.

Ответы [ 2 ]

8 голосов
/ 30 августа 2011

Это происходит потому, что гарнитура автоматически устанавливается на моноширинный в случае поля пароля. Установка android:typeface="normal" в поле пароля не помогает.

Здесь код из источников TextView :

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.

6 голосов
/ 22 апреля 2014

Doing mEditText.setTypeface(Typeface.DEFAULT); исправляет проблему для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...