目前,我知道通过任何小部件的方法使用此代码隐藏软键盘的onTap方法。
onTap
FocusScope.of(context).requestFocus(new FocusNode());
但我想通过单击 TextField 外部或屏幕上的任何位置来隐藏软键盘。有什么方法flutter可以做到这一点吗?
flutter
你做错了,试试这个简单的方法来隐藏软键盘。您只需要将整个屏幕包装在GestureDetector方法中并onTap编写此代码。
GestureDetector
这是完整的示例:
new Scaffold( body: new GestureDetector( onTap: () { FocusScope.of(context).requestFocus(new FocusNode()); }, child: new Container( //rest of your code write here ) )
更新(2021 年 5 月)
return GestureDetector( onTap: () => FocusManager.instance.primaryFocus?.unfocus(), child: Scaffold( appBar: AppBar( title: Text('Login'), ), body: Body(), ), );
即使您触摸 AppBar,这也会起作用,在 Dart 2 中new是可选的。将返回当前在小部件树中具有主要焦点的节点。FocusManager.instance.primaryFocus
new
FocusManager.instance.primaryFocus