检测Flutter上的推入路线

时间:2018-09-29 12:34:23

标签: flutter

如何检查堆栈中当前是否有命名路由? 我不想每次用户推送已经存在的命名路由时都建立新路由。

还可以弹出命名路线吗?

类似Navigator.of(context).popNamed(routeToPop)

2 个答案:

答案 0 :(得分:3)

https://docs.flutter.io/flutter/widgets/RouteObserver-class.html允许您侦听路由更改并自己维护堆栈的副本,​​以便在其中查找现有路由。

您也可以对公开历史记录堆栈的问题https://github.com/flutter/flutter/pull/22408进行投票。

答案 1 :(得分:0)

由于在我的情况下,我可以控制路线实例,所以我进一步研究了navigator。我找到了解决问题的方法:

navigator.removeRoute(myRoute)

虽然它不会使路线动画化。路线完全消失了。对于我所需要的,这是可以的,因为调用removeRoute时,无论如何,要删除的路由都是隐藏的。