检测文本字段外部的点击以取消焦点

fhu*_*cho 6 flutter

我想当用户点击 . 之外的地方时隐藏键盘TextField。我当前的解决方案是监听包裹GestureDetector屏幕的点击,并调用FocusScope.of(context).unfocus()隐藏键盘。

问题是它GestureDetector无法检测按钮等小部件上的点击。因此,当点击按钮时,键盘不会隐藏。

Oma*_*att 1

由于按钮小部件处理自己的手势,因此您只需添加FocusScope.of(context).unfocus()按钮即可onPressed()

ElevatedButton(
  onPressed: () {
    // Unfocus from any focused TextField
    FocusScope.of(context).unfocus();
    // Do button function
  },
  child: Text('...'),
)
Run Code Online (Sandbox Code Playgroud)