如何检查堆栈中当前是否有命名路由? 我不想每次用户推送已经存在的命名路由时都建立新路由。
还可以弹出命名路线吗?
类似Navigator.of(context).popNamed(routeToPop)
答案 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
时,无论如何,要删除的路由都是隐藏的。