将路线带到导航堆栈的顶部

时间:2020-10-14 10:22:23

标签: flutter router

我的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,而是将现有的(如果已经存在的话)放在导航堆栈的顶部。

我没有找到任何合适的方法。有人知道如何以某种适当的方式实现这种目标吗?

1 个答案:

答案 0 :(得分:2)

使用新的Navigator 2.0(Flutter v1.22),您现在可以使用pages属性获取堆栈列表。

您可以扩展导航器,并根据在堆栈中找到的内容处理自定义事件,例如弹出/推送事件。

这对这个主题很有帮助article

这是Flutter团队的Navigator 2.0的official documentation