【发布时间】:2020-08-26 08:20:41
【问题描述】:
我正在尝试找到一种方法在我的应用 (MaterialApp) 的 Root 中设置 global 导航侦听器,它可以让我跟踪所有 导航事件,包括实际的路线名称(例如/home/page1)、导航类型等
我搜索类似:
MaterialApp(
initialRoute: '/',
onGenerateRoute: (RouteSettings settings) => route(settings),
onNavigationChange: (RouteType type, String currentRoute) {
// type can an enum be like: 'pop', 'push', 'replace' etc.
// currentRoute is the current route name defined in a pushNamed for example
}
),
注意:此代码非功能性,仅用于说明我想要的;)
在搜索过程中,我发现了很多解决方案,例如 RouteObserver、route_observer_mixin,这几乎是我正在寻找的,但我需要用 mixin 包装我的所有页面......所以没有全局解决方案:/
你有什么线索吗?
提前致谢,
感谢@pskink编辑,请参阅下面的解决方案
【问题讨论】:
-
你有
MaterialApp.navigatorObservers属性 -
@pskink 感谢您的回答,但
navigatorObservers需要在我所有的子页面上设置一个 mixin,我只想设置一次:/ -
什么混入?你不需要任何mixin,只需在观察者列表中添加一个具体的
NavigatorObserver -
哦!我的坏是的!这是现在完美的工作!非常感谢!
-
@pskink 我已经编辑了我的问题以帮助其他人,再次感谢您的帮助:)
标签: flutter flutter-dependencies flutter-navigation