Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 颤振中导航器路线变化的观察者_Dart_Flutter - Fatal编程技术网

Dart 颤振中导航器路线变化的观察者

Dart 颤振中导航器路线变化的观察者,dart,flutter,Dart,Flutter,有没有办法在颤振中听到导航器的路线变化?基本上,我希望在推送或弹出路线时收到通知,并从导航器发出的通知返回屏幕上显示的当前路线。您可以实现并接收带有详细信息的通知 在导航观测者的基础上,您还可以使用和。我也在努力解决这一问题,而出于我的目的,路由观测者感觉工作过度,而且超出了我的需要。我最近处理它的方式是在我的MaterialApp中使用ongeneraterout属性。因此,如果您在应用程序中使用onGenerateRoute,则此解决方案更适用(如果您使用参数导航,可能特别有用)。你可以阅读

有没有办法在颤振中听到导航器的路线变化?基本上,我希望在推送或弹出路线时收到通知,并从导航器发出的通知返回屏幕上显示的当前路线。您可以实现并接收带有详细信息的通知

在导航观测者的基础上,您还可以使用和。

我也在努力解决这一问题,而出于我的目的,
路由观测者感觉工作过度,而且超出了我的需要。我最近处理它的方式是在我的
MaterialApp
中使用
ongeneraterout
属性。因此,如果您在应用程序中使用
onGenerateRoute
,则此解决方案更适用(如果您使用参数导航,可能特别有用)。你可以阅读更多关于它的内容

我的
MaterialApp
如下所示:

runApp(MaterialApp(
标题:“bla”,
主页:BuilderPage(LoginArguments(false)),
onGenerateRoute:generateRoute
));
generaterout
方法如下所示:

路由生成器输出(路由设置){
开关(设置.名称){
“主要”案例:
打印('导航到主')
返回MaterialPackageRoute(生成器:()=>MainScreen());
“登记册”一案:
打印('导航到注册表')
返回MaterialPackageRoute(生成器:()=>RegisterScreen());
违约:
返回物料路线(
建造商:()=>脚手架(
正文:中(
子项:Text('No route defined for${settings.name}'),
));
}
}
因此,我现在每次都会这样做,例如:

Navigator.pushNamed(
上下文
"登记册",,
);
它将打印导航到注册表的
。我认为,如果您不一定需要知道是按了
还是弹出了
,这种方法尤其有用。通过一些额外的实现,还可以通过注入参数观察到这一点