目录

1.把widget的手势设为null

2.使用IgnorePointer

总结


        在app开发的过程中,我们有时候会禁用某些按钮的点击状态:就比如说下图所示的登陆页面:只有当用户输入的邮箱密码都合法的时候,按钮才可以点击,否则,按钮将置灰,编程不可点击状态。我们来看一下Flutter禁用按钮状态的几种方式:

        图1.开发中的登陆页面


1.把widget的手势设为null

        当我们使用Gesture的时候,当按钮不可点击的时候,我们将onTap,onLongTap等响应事件设置为null.类似下面的代码:

GestureDetector(onTap:canClick?null: (){

              },child: Container(
                  padding: const EdgeInsets.all(10),
                  decoration: BoxDecoration(
                    color: currentPassword.isNotEmpty &&currentEmail.isNotEmpty?Colors.blue:Colors.black12,
                    borderRadius: const BorderRadius.all(Radius.circular(5))
                  ),
                  child: const Text('登陆'))),

2.使用IgnorePointer

        刚开始的时候,我是通过上一种方式来实现的,这两天在查看Flutter的API的时候,发现Flutter中有个widget是专门用来禁止用户交互的。就是这个IgnorePointer.我们可以把要禁止交互的组件用IgnorePointer包裹一下,当按钮不可点击的时候,设置ignoring的只为true.

        这里需要注意的是,当设置ignoring为true时,被IgnorePointer包裹的widget以及其子控件都是不会响应事件的。


总结

        这是我知道的两种禁止点击事件的方法,两种方式都可以实现禁止点击事件的效果,可以根据需要来选择,如果你有其他的方法,可以给笔者留言,大家一起学习,一起进步

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐