一个简单的 flutter/dart 自定义事件管理

368 阅读1分钟

定义(可在listener中自行添加参数接收)

/// 自定义事件处理
class CustomEvent {
  List<Function()> listeners = [];

  /// 添加事件监听
  void addListener(Function() listener) {
    listeners.add(listener);
  }

  /// 移除事件监听
  void removeListener(Function() listener) {
    listeners.removeWhere((element) => element == listener);
  }

  /// 提交、触发事件
  void emit() {
    for (Function() listener in listeners) {
      listener();
    }
  }
}

使用示例


/// 事件定义
CustomEvent secretShootingCountdownOverEvent = CustomEvent();

/// 事件监听处理函数
void listener(){
    //....
}
// 添加
secretShootingCountdownOverEvent.addListener(listener);
// 移除(勿忘,比如在页面或组件中的dispose中调用)
secretShootingCountdownOverEvent.removeListener(listener);
// 触发
secretShootingCountdownOverEvent.emit();