de_bounce.dart 474 B

1234567891011121314151617181920
  1. class Debounce {
  2. // 设定的时间间隔,单位为毫秒
  3. final int debounceTime;
  4. // 记录上次点击的时间
  5. DateTime? _lastClickTime;
  6. Debounce({this.debounceTime = 300});
  7. // 点击事件处理方法
  8. void onClick(Function action) {
  9. DateTime now = DateTime.now();
  10. if (_lastClickTime == null ||
  11. now.difference(_lastClickTime!) >
  12. Duration(milliseconds: debounceTime)) {
  13. _lastClickTime = now;
  14. action();
  15. }
  16. }
  17. }