在项目中,我没有给屏幕指定名称,只是在各处切换了Login()
之类的屏幕,但是当我要注销并要清除屏幕堆栈时,如何弹出所有屏幕?屏幕?而且我在路由时也没有提到屏幕名称。
Navigator.push(context, MaterialPageRoute(builder: (context) => Login()),);
我尝试弹出所有屏幕,直到进入登录屏幕,但由于'/login'
未用于路由而无法切换。
Navigator.of(context).popUntil('/login', (Route<dynamic> route) => false);
答案 0 :(得分:1)
打开Login()
时,您可以执行以下操作:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Login(),
settings: RouteSettings(name: '/login')),
);
您应该在推动路线时添加设置;具有自定义名称。如果不使用固定的路由名称。
当您想返回到Login()
时:
Navigator.popUntil(context, ModalRoute.withName("/login"));