可以用Navigator推送页面并设置后台页面吗?

问题描述 投票:0回答:1

我有具体情况。 我有启动屏幕页面,当我想要进入下一页时,但是当用户按下后退按钮时,它不会返回到启动屏幕,而是返回到其他页面。

启动页 -> 第三页

返回架构:

第三页 -> 第二页 -> 退出应用程序

当用户在这个

Third page
时,我想回到
Second page

不使用命名路由也可以吗?

flutter
1个回答
0
投票

您可以使用 Navigator 小部件的

pushAndRemoveUntil
方法来解决此问题。

Navigator.pushAndRemoveUntil(
  context,
  MaterialPageRoute(builder: (context) => ThirdPage()),
  (route) {
    //::::::::::>Only keep SecondPage in the stack<:::::::::://
    return route.settings.name == "SecondPage";
  },
);

查看下面的完整代码示例,

Navigator.of(context).pushAndRemoveUntil(
  MaterialPageRoute(builder: (context) => ThirdPage()),
  (route) => false, // Removes all previous routes 
);
Navigator.of(context).push(
  MaterialPageRoute(builder: (context) => ThirdPage()
  )
);
© www.soinside.com 2019 - 2024. All rights reserved.