Ошибка установки включена в false на TextInputlayout, не удаляющем дополнительное пространство в Android 9.0 - PullRequest
0 голосов
/ 29 января 2020

Я использую Basi c TextInputLayout. Я устанавливаю ошибку, когда EditText пусто. Когда пользователь вводит какой-то текст, я удаляю текст ошибки, как этот.

 tilPassword.isErrorEnabled = false
 tilPassword.error = null

Работает нормально и хорошо. Причина вызова tilPassword.isErrorEnabled = false заключается в том, что он помогает мне удалить дополнительное пространство, которое TextInputLayout добавляет к макету при отображении текстов ошибок. Когда пользователь вводит какой-то текст, я удаляю ошибку, а также лишний пробел (который добавляется TextInputLayout).

Сообщение об ошибке удаляется, но дополнительное пространство не удаляется в Android 9.0. Как решить эту проблему?

1 Ответ

1 голос
/ 29 января 2020

https://developer.android.com/reference/com/google/android/material/textfield/TextInputLayout.html#setErrorEnabled (логическое значение)

Документы объясняют:

Включение этой функции перед установкой сообщения об ошибке через setError (CharSequence), будет означать что этот макет не изменит размер при отображении ошибки.

Таким образом, он будет работать так.

Показать ошибку:

tilPassword.setErrorEnabled(true)
tilPassword.setError("Wrong password")

Скрыть ошибка:

tilPassword.setError("")
tilPassword.setErrorEnabled(false)

Убедитесь, что вы используете версию TextInputLayout для AndroidX:

https://developer.android.com/reference/com/google/android/material/textfield/TextInputLayout.html

Поскольку версия платформы ниже не рекомендуется :

https://developer.android.com/reference/android/support/design/widget/TextInputLayout

Реф. кто-то объясняет источник:

{ ссылка }

...