Изменить TextInputLayout Hint Font - PullRequest
2 голосов
/ 05 апреля 2019

Привет, я использую kotlin для установки шрифта подсказки для TextInputLayout как:

   passwordTextLayout.typeface = Typeface.createFromAsset(context.assets, "fonts/af/myfont.ttf")

, где myfont.ttf - это файл личного шрифта

это работает только тогда, когда подсказка находится / помещается в текстовом редакторе textinputlayout, но когда я щелкнул текст редактирования и начал вводить подсказку, она свернулась вверх и изменила шрифт на какой-то шрифт по умолчанию!

Я хочу использовать один и тот же тип лица для подсказки в обоих условиях, т.е. когда подсказка находится внутри текста редактирования и когда он сворачивается.

Изображение, когда подсказка находится внутри текста редактирования (см. F для изменения шрифта) :

enter image description here

Изображение, когда пользователь нажимает внутри текста редактирования, шрифт меняется на (проверьте символ f) :

enter image description here

1 Ответ

0 голосов
/ 05 апреля 2019

Хорошо, очевидно, есть проблема с гарнитурами в TextInputLayouts с inputType password. Если вы используете TextView.setInputType () с любым из:

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
InputType.TYPE_TEXT_VARIATION_PASSWORD
InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD
InputType.TYPE_NUMBER_VARIATION_PASSWORD

... тогда Android применяет шрифт Monospace.

Я думаю, что лучшим решением будет следующее:

  1. Удалить android: inputType = "textPassword" из определения xml вид.
  2. Применение шрифта с помощью Библиотека Caligraphy3 .
  3. Набор PasswordTransformation в коде:

. .

 password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
 password.setTransformationMethod(PasswordTransformationMethod.getInstance());
...