-
为什么要监听路由堆栈变化
-
如何监听路由堆栈
-
路由堆栈示例
-
当由页面A跳转到页面B时,堆栈及状态发生了变化
-
页面跳转时的变化状态有:didPush(跳转)/didPushNext(下一个)、didPop(返回)/didPopNext(返回上一个)
-
通过路由堆栈监听,可以自定义路由堆栈,方便分析异常日志等
3.1 几个关键字
navigatorObservers(路由监听列表)
const MaterialApp({
Key? key,
Map<String, WidgetBuilder> this.routes = const <String, WidgetBuilder>{},
this.initialRoute,
List this.navigatorObservers = const [],
}
-
MaterialApp的一个属性,用于监听StatefulWidget的路由状态
-
navigatorObservers接收一个RouteObserver数组
RouteObserver(路由监听)
class RouteObserver<R extends Route> extends NavigatorObserver {
final Map<R, Set> _listeners = <R, Set>{};
/// Subscribe [routeAware] to be informed about changes to [route].
}
-
继承
NavigatorObserver
,监听页面的路由变化 -
通过
RouteAware
接口回调通知状态变化 -
接收参数