跳到主要内容

flutter防抖

import 'dart:async';
import 'dart:ui';

class Debouncer {
final int milliseconds;
Timer? _timer;

Debouncer({required this.milliseconds});

void run(VoidCallback action) {
// 如果在规定时间内再次调用,则取消上次定时器
_timer?.cancel();

// 创建新的定时器
_timer = Timer(Duration(milliseconds: milliseconds), action);
}
}

// 使用
final _debouncer = Debouncer(milliseconds: 500);

_debouncer.run(() {
});