美文网首页
flutter按钮防止重复点击

flutter按钮防止重复点击

作者: Crassus | 来源:发表于2022-10-10 13:27 被阅读0次

参考网上很多版本,结合体验下来不是很好,改造这样效果,可以执行第一次点击,后面点击会被取消拦截;

import 'dart:async';
class CommonUtils{
  static Function debounce(Function fn, [int t = 300]) {
    Timer _debounce;
    return () {
      // 还在时间之内,抛弃上一次
      if (_debounce?.isActive ?? false) {
        _debounce.cancel();
      }else{
        fn();
      }
      _debounce = Timer(Duration(milliseconds: t), () {
        _debounce.cancel();
        _debounce = null;
      });
    };
  }
}

方法使用
各种点击事件

不带参数事件
onTap: CommonUtils.debounce(_showDevices)
带参数事件
onPressed: CommonUtils.debounce((){
         }),

相关文章

网友评论

      本文标题:flutter按钮防止重复点击

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