点击返回按钮的时候我用WillPopScope这个widget来监听的。
后来,为了更细的监听路由,我发现了flutter自带的监听器,直接上代码,节约时间
首先创建一个全局变量,不在任何类里面
final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();
然后告诉flutter:喂,这是观察者,你路由的时候给他说一下!
在main.dart中加入
Widget build(BuildContext context) {
return MaterialApp(
...
navigatorObservers: <NavigatorObserver>[routeObserver],
...
);
}
这下你订阅观察者,就可以收到通知了
class _MyPageWidgetState extends State<MyPageWidget> with RouteAware {
@override
void didChangeDependencies() {
super.didChangeDependencies();
routeObserver.subscribe(this, ModalRoute.of(context));
}
@override
void dispose() {
routeObserver.unsubscribe(this);
super.dispose();
}
void didPopNext() {
debugPrint("didPopNext ${runtimeType}");
}
void didPush() {
debugPrint("didPush ${runtimeType}");
}
void didPop() {
debugPrint("didPop ${runtimeType}");
}
void didPushNext() {
debugPrint("didPushNext ${runtimeType}");
}
}