Flutter   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了 【Flutter 实战】全局点击空白处隐藏键盘大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

 【Flutter 实战】全局点击空白处隐藏键盘

对于单个页面来说,通过为 TextField 添加 focusnode,点击空白处时使 TextField 失去焦点,实现如下:

class DismissKeyboardDemo extends StatelessWidget {
  final Focusnode focusnode = Focusnode();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),body: GestureDetector(
        onTap: () {
          focusnode.unfocus();
        },child: Container(
          color: Colors.transparent,alignment: Alignment.center,child: TextField(
            focusnode: focusnode,),);
  }
}

 【Flutter 实战】全局点击空白处隐藏键盘

当 App 中有多个页面多个 TextField 时,此方式会增加大量重复的代码,因此全局添加点击空白处的监听:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',builder: (context,child) => Scaffold(
        body: GestureDetector(
          onTap: () {
            FocusScopeNode currentFocus = FocusScope.of(context);
            if (!currentFocus.hasPriMaryFocus &&
                currentFocus.focusedChild != null) {
              Focusmanager.instance.priMaryFocuS.Unfocus();
            }
          },child: child,home: DismissKeyboardDemo(),);
  }
}

也可以使用如下方式隐藏键盘

SystemChAnnels.texTinput.invokeMethod('TexTinput.hide');

修改 @H_404_7@DismissKeyboardDemo 页面

class DismissKeyboardDemo extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),body: Center(
        child: TextField(),);
  }
}

@L_801_12@和上面是一样的,同样可以实现点击空白处隐藏键盘

交流

老孟Flutter博客地址(330个控件用法):http://laomengit.com

欢迎加入Flutter交流群(微信:laomENGIt)、关注公众号【老孟Flutter】:

 【Flutter 实战】全局点击空白处隐藏键盘

 【Flutter 实战】全局点击空白处隐藏键盘

大佬总结

以上是大佬教程为你收集整理的 【Flutter 实战】全局点击空白处隐藏键盘全部内容,希望文章能够帮你解决 【Flutter 实战】全局点击空白处隐藏键盘所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: