📅  最后修改于: 2023-12-03 15:33:05.576000             🧑  作者: Mango
当你想要从一个页面跳转到下一个页面时,并且不想在上一个页面返回时回到该页面时,你可以使用 Navigator.pushReplacementNamed
函数。这个函数可以使得你在跳转到下一个页面的同时将此前的路由记录覆盖掉,即上一个页面从路由记录中删除。这样,当你回退时,你无法回到上一个页面。
##参数
routeName
你需要跳转到的路由路径名。
arguments
你需要传给下一个页面的参数。
Navigator.pushReplacementNamed(context, '/home', arguments: { 'name': 'John Doe' });
在这个例子中,将从上文中的 context
所指向的路由页面跳转到 '/home' 页面,并将一个对象 { 'name': 'John Doe' }
作为参数传递给新页面。
需要注意的是,'home' 页面必须在 MaterialApp
或 Navigator
等所处的上下文范围内进行定义。具体而言,你需要在你的 MaterialApp
中提供一个 routes
参数来显式地将其引入应用程序:
MaterialApp(
routes: {
'/home': (context) => HomePage(),
},
...
);
这样,当你通过 Navigator.pushReplacementNamed
跳转到含有 '/home' 路由的页面时,Flutter 就会匹配到对应的 HomePage()
。
##总结
使用 Navigator.pushReplacementNamed
函数可以实现将当前页面从路由记录中删除,从而防止回到上一个页面。在使用该函数时,需要注意新页面必须在跳转前通过 routes
参数进行显式声明。