小编典典

单击屏幕上的文本字段/任何位置后,如何在颤动上隐藏软输入键盘?

all

目前,我知道通过任何小部件的方法使用此代码隐藏软键盘的onTap方法。

FocusScope.of(context).requestFocus(new FocusNode());

但我想通过单击 TextField 外部或屏幕上的任何位置来隐藏软键盘。有什么方法flutter可以做到这一点吗?


阅读 79

收藏
2022-03-31

共1个答案

小编典典

你做错了,试试这个简单的方法来隐藏软键盘。您只需要将整个屏幕包装在GestureDetector方法中并onTap编写此代码。

        FocusScope.of(context).requestFocus(new FocusNode());

这是完整的示例:

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

2022-03-31