Flutter监听TextField焦点事件,点击与清除焦点

  • 发表于
  • flutter

点击任意位置取消TextField焦点

监听TextField焦点,如何在单击屏幕上的任意位置后隐藏软键盘?

之前我们是这么用的:

要实现点击任何位置清除焦点,只需要用GestureDetector方法包裹整个布局,然后onTap方法编写此代码,即可隐藏软键盘:

新的方法

unfocus

从具有主要焦点的节点上删除焦点,并取消所有未完成的聚焦请求。调用requestFocus将一个请求发送到FocusManager以使该节点成为主要焦点,该节点计划以最新请求解析为树上焦点状态的更新。调用unfocus会取消已请求但尚未执行的请求。

无论此节点是否曾经请求过焦点,都可以安全地调用此方法。

如果声明了FocusNode聚焦文本字段,请使用unfocus:

如果您尚未明确声明FocusNode,请使用“常规”方法:

如果您需要:1、消除键盘;2、取消焦点文本字段:

官方文档说,即使没有焦点,分离也可以安全使用。

如果您只想隐藏键盘而不丢失文本字段焦点: