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