flutter event_bus
2021-06-07 本文已影响0人
_诸葛青
#事件监听
event_bus: ^1.1.1
事件代码
import 'package:event_bus/event_bus.dart';
class TestEventBus {
static final TestEventBus _gInstance = TestEventBus._init();
EventBus _eventBus = EventBus();
TestEventBus._init() {
///
}
factory TestEventBus() {
return _gInstance;
}
EventBus get bus {
return _eventBus;
}
}
使用:
创建事件
class ProgressEvents {
String data;///传输数据就在这里加
ProgressEvents({this.data});
}
触发的地方:
ProgressEventBus().bus.fire(ProgressEvents(data: ''));
监听的地方:
ProgressEventBus().bus.on<ProgressEvents>().listen((event) {
if (!mounted) return;
});
///取消订阅
StreamSubscription subscription;
subscription=ProgressEventBus().bus.on<ProgressEvents>().listen((event) {
if (!mounted) return;
});
@override
void dispose() {
// TODO: implement dispose
super.dispose();
if (subscription != null) {
subscription.cancel();
}
}
注:监听应比触发早。