监听输入框
FocusNode _focusNode = FocusNode();
initState()
void initState() { _focusNode.addListener(() { if (_focusNode.hasFocus) { setState(() { _focusView = true; }); }else{ setState(() { _focusView = false; }); } }); super.initState(); }
TextFormField添加
focusNode: _focusNode,
來源:https://www.uedbox.com/post/65066/
点击任何位置关闭软键盘
Scaffold( body: GestureDetector( onTap: () { FocusScope.of(context).requestFocus(new FocusNode()); }, child: new Container( //rest of your code write here ) )
从具有主要焦点的节点上删除焦点,并取消所有未完成的聚焦请求。调用requestFocus将一个请求发送到FocusManager以使该节点成为主要焦点,该节点计划以最新请求解析为树上焦点状态的更新。调用unfocus会取消已请求但尚未执行的请求。
无论此节点是否曾经请求过焦点,都可以安全地调用此方法。
如果声明了FocusNode聚焦文本字段,请使用unfocus:
final focusNode = FocusNode(); // ... focusNode.unfocus();