WidgetsBinding.instance.window.defaultRouteName, onGenerateRoute: _onGenerateRoute, onUnknownRoute: _onUnknownRoute, observers: widget.navigatorObservers...MaterialApp类,提供了navigatorObservers属性,这样我们就可以自定义NavigatorObserver去监听Navigator的变化。 ?...return _instance; } } 2、创建MaterialApp的对象的时候,将CustomNavigatorObserver赋值给MaterialApp MaterialApp( navigatorObservers
result = WidgetsApp( key: GlobalObjectKey(this), navigatorKey: widget.navigatorKey, navigatorObservers...: _navigatorObservers, pageRouteBuilder: (RouteSettings settings, WidgetBuilder builder) =...:-( Key key, this.navigatorKey, this.onGenerateRoute, this.onUnknownRoute, this.navigatorObservers...onGenerateRoute: _onGenerateRoute, onUnknownRoute: _onUnknownRoute, observers: widget.navigatorObservers
监听路由堆栈的变化使用 RouteObserver ,首先在 MaterialApp 组件中添加 navigatorObservers: void main() { runApp(MyApp());...navigatorObservers: [routeObserver], home: HomePage(), ); } } 监听页面设置如下: class ARouteObserverDemo...override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', navigatorObservers
key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( navigatorObservers...导航栏自动埋点实现原理MaterialApp: navigatorObservers 来实现对页面跳转的监听,Bugsnag中是通过自定义BugsnagNavigatorObserver,并在其回调函数中监听导航行为手动调用...注意事项: navigatorObservers是创建导航器的观察者列表,将要观察页面跳转对象放在该列表中,页面中发生导航行为时候,就可以监听到。...如果一个应用中有多个MaterialApp的情况,需要保证每个MaterialApp:navigatorObservers中都有BugsnagNavigatorObserver才行,不然某些MaterialApp...如下代码中Bugsnag框架自定义了BugsnagNavigatorObserver对象, 该对象必须继承NavigatorObserver并实现其中回调函数方可放入到MaterialApp:navigatorObservers
super(key: key); @override Widget build(BuildContext context) { return MaterialApp( navigatorObservers...导航栏自动埋点实现原理 MaterialApp: navigatorObservers 来实现对页面跳转的监听,Bugsnag中是通过自定义BugsnagNavigatorObserver,并在其回调函数中监听导航行为手动调用...注意事项: navigatorObservers是创建导航器的观察者列表,将要观察页面跳转对象放在该列表中,页面中发生导航行为时候,就可以监听到。...如果一个应用中有多个MaterialApp的情况,需要保证每个MaterialApp:navigatorObservers中都有BugsnagNavigatorObserver才行,不然某些MaterialApp...如下代码中 Bugsnag框架自定义了BugsnagNavigatorObserver对象, 该对象必须继承NavigatorObserver并实现其中回调函数方可放入到MaterialApp:navigatorObservers
. /// /// The boolean arguments, [routes], and [navigatorObservers], must not be null....WidgetBuilder>{}, this.initialRoute, this.onGenerateRoute, this.onUnknownRoute, this.navigatorObservers...= null), assert(navigatorObservers != null), assert(title !
解决方案 解决思路: MaterialApp 的routes属性赋值路由数组,navigatorObservers属性赋值路由监听对象NavigatorManager。...具体实现 main.dart MaterialApp( navigatorObservers: [NavigatorManager.getInstance()], routes: NavigatorManager.configRoutes
this.defaultTitle, this.routes, this.onGenerateRoute, this.onUnknownRoute, this.navigatorObservers
this.navigatorKey, this.initialRoute, this.onGenerateRoute, this.onUnknownRoute, this.navigatorObservers
Colors.blue, ), // add new onGenerateRoute: RRouter.myRouter.routerGenerate, navigatorObservers
WidgetBuilder> initialRoute(初始路由) String onGenerateRoute(生成路由) RouteFactory onUnknownRoute(未知路由) RouteFactory navigatorObservers...} ); 6 . onUnknownRoute 效果跟onGenerateRoute一样 调用顺序为onGenerateRoute ==> onUnknownRoute 7 . navigatorObservers...路由观察器,当调用Navigator的相关方法时,会回调相关的操作 使用 new MaterialApp( navigatorObservers: [ MyObserver
} ); 6 . onUnknownRoute 效果跟onGenerateRoute一样 调用顺序为onGenerateRoute ==> onUnknownRoute 7 . navigatorObservers...路由观察器,当调用Navigator的相关方法时,会回调相关的操作 使用 new MaterialApp( navigatorObservers: [ MyObserver
导航键) GlobalKey onGenerateRoute(生成路由) RouteFactory onUnknownRoute(未知路由) RouteFactory navigatorObservers
RouteFactory 通过pushNamed跳转路由页面时,在routes查找不到时回调 onUnknownRoute RouteFactory onGenerateRoute 无法生成路由时调用 navigatorObservers
所以我们需要通过注册nevigator的observer去监听页面的打开与关闭: Widget build(BuildContext context) { return new MaterialApp( navigatorObservers
Widget build(BuildContext context) { return MaterialApp( home: HomePage, // here navigatorObservers...FlutterSmartDialog.monitor(); return MaterialApp( home: HomePage, // here navigatorObservers...override Widget build(BuildContext context) { return MaterialApp( home: HomePage, navigatorObservers
return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), navigatorObservers
WidgetBuilder>{}, this.initialRoute, this.onGenerateRoute, this.onUnknownRoute, this.navigatorObservers
Window.defaultRouteName onGenerateRoute : 生成路由的回调函数,当导航的命名路由的时候,会使用这个来生成界面 onLocaleChanged : 当系统修改语言的时候,会触发这个回调 navigatorObservers
领取专属 10元无门槛券
手把手带您无忧上云