我有具体情况。 我有启动屏幕页面,当我想要进入下一页时,但是当用户按下后退按钮时,它不会返回到启动屏幕,而是返回到其他页面。
启动页 -> 第三页
返回架构:
第三页 -> 第二页 -> 退出应用程序
当用户在这个
Third page
时,我想回到Second page
。
不使用命名路由也可以吗?
您可以使用 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()
)
);