#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()