当前位置:   article > 正文

Flutter 点击空白处关闭软键盘,点击非TextField 关闭软键盘的方法_flutter 关闭键盘

flutter 关闭键盘

1:点击空白处(非控件上)关闭软键盘。

    此方法有个问题,就是点击非空白区域,不会关闭软键盘,比如点击旁边的其他按钮,则软键盘还在。只适合点击空白处关闭软键盘

在 main.dart 入口 build 中增加

  1. builder: (context, child) {
  2. //xxxxx 操作
  3. return GestureDetector(
  4. behavior: HitTestBehavior.translucent,
  5. // 全局添加点击空白处隐藏键盘
  6. onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
  7. // onTap: () {
  8. // FocusScopeNode currentFocus = FocusScope.of(context);
  9. // if (!currentFocus.hasPrimaryFocus &&
  10. // currentFocus.focusedChild != null) {
  11. // FocusManager.instance.primaryFocus?.unfocus();
  12. // }
  13. // },
  14. child: child,
  15. );
  16. },
2. 点击非TextField 关闭软键盘

增加Listener 监听

此方法有个问题:点击所有地方都会先关闭软键盘。点击TextField 会先关闭软键盘,然后再重新弹出来。

  1. builder: (context, child) {
  2. FlutterSmartDialog.init();
  3. return Listener(
  4. onPointerDown: (_) {
  5. FocusScopeNode currentFocus = FocusScope.of(context);
  6. if (!currentFocus.hasPrimaryFocus) {
  7. currentFocus.focusedChild?.unfocus();
  8. }
  9. },
  10. child: child,
  11. );
  12. },

3:在TextField 添加此方法,在每个输入框中添加如下方法也可以实现。

  1. onTapOutside: (event){
  2. FocusScopeNode currentFocus = FocusScope.of(context);
  3. currentFocus.focusedChild?.unfocus();
  4. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/268720
推荐阅读
相关标签
  

闽ICP备14008679号