我有这个例子:
@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()
],
),
),
),
),
);
}
当键盘出现或隐藏时,它会导致小部件重建。为什么会出现这种情况?
其实我使用后也找不到重建的原因
FocusScope.of(context).unfocus();
但是这个将帮助您停止重建小部件。
FocusManager.instance.primaryFocus.unfocus();
它正在处理我的应用程序。
https://api.flutter.dev/flutter/widgets/FocusNode/unfocus.html
文档中的示例使用
primaryFocus.unfocus
方式。
OutlinedButton(
child: const Text('UNFOCUS'),
onPressed: () {
setState(() {
primaryFocus!.unfocus(disposition: disposition);
});
},
),