#flutter #keyboard #rebuild
#flutter #клавиатура #перестроить
Вопрос:
У меня есть этот пример:
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(30),
child: GestureDetector(
onTap: () {
print('Hide keyboard!!!');
FocusScope.of(context).unfocus();
},
child: Column(
children: [
Text(DateTime.now().toIso8601String()),
TextFormField()
],
),
),
),
),
);
}
Когда клавиатура появляется или скрыта, это приводит к перестройке виджета. Почему это происходит?
Ответ №1:
На самом деле, я не смог найти причину перестройки после использования
FocusScope.of(context).unfocus();
Но это поможет вам остановить перестроение виджета.
FocusManager.instance.primaryFocus.unfocus();
Это работает в моем приложении.
Комментарии:
1. У меня это тоже работает с
TextFormField
… используяFocusScope.of(context).unfocus();
, я бы видел случайные перерисовки дерева виджетов и даже мог иногда попадать в состояние, когда было невозможно перефокусировать виджет.