美文网首页FlutterFlutter
flutter:如何实现防抖,防重复点击

flutter:如何实现防抖,防重复点击

作者: 李小轰 | 来源:发表于2021-06-17 20:12 被阅读0次

    使用时间差方案,实现防重复点击

    class ThrottleUtil {
      static const Duration _KDelay = Duration(milliseconds: 500);
      var enable = true;
    
      ///防止重复点击
      ///func 要执行的方法
      Function throttle(
        Function func, {
        Duration delay = _KDelay,
      }) {
        return () {
          if (enable) {
            func();
            enable = false;
            Future.delayed(delay, () {
              enable = true;
            });
          }
        };
      }
    }
    

    使用方式:

    //声明局部变量
    ThrottleUtil throttleUtil = ThrottleUtil();
    
    //点击事件
    onPressed: throttleUtil.throttle(() {
              setState(() {
                _counter++;
              });
            }
    

    缺点:每个防重复点击的事件都需要持有各自的 throttleUtil 对象,throttleUtil 使用时间差进行判断重复点击,暂不支持混用。

    相关文章

      网友评论

        本文标题:flutter:如何实现防抖,防重复点击

        本文链接:https://www.haomeiwen.com/subject/uhxhyltx.html