FlutterFlutter

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

2021-06-17  本文已影响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 使用时间差进行判断重复点击,暂不支持混用。

上一篇下一篇

猜你喜欢

热点阅读