如果在 Flutter 中使用 Navigator.pushNamed(context, '/')
,默认情况下它会将新的页面压入栈中,这样用户可以按返回键返回上一页。但如果你不想让用户返回,而是直接跳转到 /
并清除导航栈,可以使用 pushReplacementNamed
或 pushNamedAndRemoveUntil
。
1. pushReplacementNamed
(替换当前页面)
Navigator.pushReplacementNamed(context, '/');
效果:
- 替换当前页面为
/
。 - 用户无法返回到上一个的页面。
2. pushNamedAndRemoveUntil(清空导航栈)
如果你想彻底清除历史记录,防止用户返回,可以这样做:
Navigator.pushNamedAndRemoveUntil(context, '/', (route) => false);
效果:
- 清除所有导航栈中的页面,只留下
/
这个页面。 - 用户完全无法返回。