import 'dart:async'; import 'package:event_bus/event_bus.dart'; class EventBusUtil { static EventBus? _eventBus; //获取单例 static EventBus getInstance() { _eventBus ??= EventBus(); return _eventBus!; } //返回某事件的订阅者 static StreamSubscription listen(Function(T event) onData) { _eventBus ??= EventBus(); //内部流属于广播模式,可以有多个订阅者 return _eventBus!.on().listen(onData); } //发送事件 static void fire(T e) { _eventBus ??= EventBus(); _eventBus!.fire(e); } } abstract class Event {} class OrderStatusEvent extends Event {} class PushStatusEvent extends Event {} //刷新用户信息 class RefreshUserdata extends Event { RefreshUserdata(); } //支付成功 class PaySuccess extends Event { PaySuccess(); } //启动游戏 class StartGames extends Event { final String gameId; StartGames(this.gameId); } //tab切换 class TabSwitch extends Event { final int index; TabSwitch(this.index); }