В чем разница между подсказкой в ​​TextInputLayout и подсказкой в ​​TextInputEditText - PullRequest
0 голосов
/ 30 мая 2019

Я обнаружил сбой в журнале сбоев «NullPointerException: попытка вызвать виртуальный метод void android.view.View.getBoundsOnScreen (android.graphics.Rect) 'для ссылки на пустой объект», и я проверил некоторые предложения по переполнению стека для этого сбоя. Я нашел ниже ссылку предложить использовать подсказку в TextInputLayout вместо TextInputEditText, поэтому я хочу знать, что отличает его?

Ниже ссылка предлагает использовать подсказку в TextInputLayout: SO Google показывает использовать подсказку в TextInputEditText: Google_Recommendation

Я попробовал подсказку в обоих местах TextInputLayout и TextInputEditText. Подсказка хорошо работала в обоих местах одинаково.

Я хотел бы знать, в чем разница между обоими методами и тем, какой из них более уместен.

Ответы [ 2 ]

2 голосов
/ 30 мая 2019

В библиотеке поддержки проектирования TextInputLayout была введена для отображения плавающей метки на EditText или TextInputEditText.EditText или TextInputEditText должны быть заключены в TextInputLayout для отображения плавающей метки.

Правило большого пальца : TextInputLayout следует обернуть TextInputEditText

, куда следует поместить подсказку

в соответствии софициальная документация

Подсказка должна быть установлена ​​на TextInputLayout , а не на EditText .Если для дочернего элемента EditText в XML указана подсказка, TextInputLayout может по-прежнему работать правильно; TextInputLayout будет использовать подсказку EditText в качестве плавающей метки.Однако будущие вызовы для изменения подсказки не обновят подсказку TextInputLayout .Чтобы избежать непреднамеренного поведения, вызовите setHint (CharSequence) и getHint () для TextInputLayout , вместо для EditText .

Примечание TextInputEditText - это особый подкласс EditText, предназначенный для использования в качестве ребенка TextInputLayout.

Надеюсь, это полезно

0 голосов
/ 08 июля 2019

Отвечаю, так как я пока не могу комментировать.

В моем случае я получал только то упоминание о сбое, которое вы упомянули от устройств Huawei. Как только я переместил все свои подсказки в TextInputLayouts в моем приложении, все сбои прекратились.

Насколько я понимаю, в версии Android, на которой построен Huawei, отсутствует нулевая проверка, вызывающая сбой.

Теперь я всегда помещаю свои подсказки в TextInputLayout.

...