import 'dart:async'; import 'dart:ui'; class Debouncer { final int milliseconds; Timer? _timer; Debouncer({this.milliseconds = 500}); /// 调用时会延迟执行,如果期间再次调用会重置计时器 void run(VoidCallback action) { _timer?.cancel(); _timer = Timer(Duration(milliseconds: milliseconds), action); } /// 页面销毁时要记得调用 void dispose() { _timer?.cancel(); } }