赞
踩
此方法有个问题,就是点击非空白区域,不会关闭软键盘,比如点击旁边的其他按钮,则软键盘还在。只适合点击空白处关闭软键盘
在 main.dart 入口 build 中增加
- builder: (context, child) {
- //xxxxx 操作
- return GestureDetector(
- behavior: HitTestBehavior.translucent,
- // 全局添加点击空白处隐藏键盘
- onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
- // onTap: () {
- // FocusScopeNode currentFocus = FocusScope.of(context);
- // if (!currentFocus.hasPrimaryFocus &&
- // currentFocus.focusedChild != null) {
- // FocusManager.instance.primaryFocus?.unfocus();
- // }
- // },
-
- child: child,
- );
- },
增加Listener 监听
此方法有个问题:点击所有地方都会先关闭软键盘。点击TextField 会先关闭软键盘,然后再重新弹出来。
- builder: (context, child) {
- FlutterSmartDialog.init();
- return Listener(
- onPointerDown: (_) {
- FocusScopeNode currentFocus = FocusScope.of(context);
- if (!currentFocus.hasPrimaryFocus) {
- currentFocus.focusedChild?.unfocus();
- }
- },
- child: child,
- );
- },
3:在TextField 添加此方法,在每个输入框中添加如下方法也可以实现。
- onTapOutside: (event){
- FocusScopeNode currentFocus = FocusScope.of(context);
- currentFocus.focusedChild?.unfocus();
- },
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。