我的flutter应用程序中有一个操作,该操作导航到这样的命名路线:
InkWell(
onTap: () {
Navigator.pushNamed(context, '/add_request');
},
splashColor: Theme.of(_selfContext).colorScheme.secondary,
child: ListTile(
leading: Icon(Icons.nature_people_rounded),
title: Text("Add request"),
)
但是我真正想要的是将Navigator.pushNamed(context, '/add_request');
行替换为Navigator.pushOrBringToTopNamed(context, '/add_request')
即,我不想总是创建一个新的Route
,而是将现有的(如果已经存在的话)放在导航堆栈的顶部。
我没有找到任何合适的方法。有人知道如何以某种适当的方式实现这种目标吗?
答案 0 :(得分:2)
使用新的Navigator 2.0(Flutter v1.22),您现在可以使用pages属性获取堆栈列表。
您可以扩展导航器,并根据在堆栈中找到的内容处理自定义事件,例如弹出/推送事件。
这对这个主题很有帮助article。
这是Flutter团队的Navigator 2.0的official documentation。