监听输入框
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();
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步