Клавиатура продолжает закрываться при нажатии на текстовое поле

#flutter

#флаттер

Вопрос:

Я разрабатываю приложение в Flutter. Я отлаживаю его на эмуляторе Android.

Я только что создал страницу входа в систему с типичными 2 полями имени пользователя и пароля.

Но когда я нажимаю на любой из них, клавиатура продолжает закрываться.

Это видео иллюстрирует это: https://gyazo.com/11fd6b2bc80be29a8c1ec0250ce95f60

Кто-нибудь знает, что происходит?

Я тоже получаю это на консоли:

 W/IInputConnectionWrapper(15377): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper(15377): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper(15377): getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper(15377): getSelectedText on inactive InputConnection
W/IInputConnectionWrapper(15377): endBatchEdit on inactive InputConnection
 

Комментарии:

1. вы удаляете кэш своего эмулятора?

2. Похоже, это не кэш эмулятора, потому что теперь я попробовал на своем физическом телефоне, и он делает то же самое :/

3. удалите его с физического устройства и извлеките apk-файл из Build -> Build boundles apk и установите apk на свой телефон. если проблема существует, это связано с вашей логикой программирования

4. Я сделал то, что вы упомянули, это продолжает происходить… Что это может быть?

5. Вы должны опубликовать свой код. Судя по тому, как это выглядит, ваш виджет перестраивается onTap, что приводит к повторному отображению виджета. Выполните печать внутри вашей сборки, где у вас есть текстовое поле — если оно вызывается при нажатии на текстовое поле, вы должны снова увидеть, что создает ваш виджет

Ответ №1:

Вы можете проверить свое дерево виджетов и увидеть, что оно использует только 1 значение ключа, GlobalKey<FormState> or UniqueKey()