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 LoginEvent extends Event { static int eventIn = 1; static int eventOut = 0; final int status; LoginEvent(this.status); } class OrderStatusEvent extends Event {} class PushStatusEvent extends Event {} //导航切换 class TabBarEvent extends Event { final int Tab; TabBarEvent(this.Tab); } class PhoneLoginBackEvent extends Event { PhoneLoginBackEvent(); } //导航跳转 class TabBarJumpEvent extends Event { int index; TabBarJumpEvent(this.index); } //画同款 class CopyDrawingEvent extends Event { CopyDrawingEvent(); } //登录完成 class LoginSuccess extends Event { LoginSuccess(); } //刷新用户信息 class RefreshUserdata extends Event { RefreshUserdata(); }