Flutter:删除所有没有路线名称的路线

时间:2019-02-21 05:54:30

标签: android dart flutter

在项目中,我没有给屏幕指定名称,只是在各处切换了Login()之类的屏幕,但是当我要注销并要清除屏幕堆栈时,如何弹出所有屏幕?屏幕?而且我在路由时也没有提到屏幕名称。

Navigator.push(context, MaterialPageRoute(builder: (context) => Login()),);

我尝试弹出所有屏幕,直到进入登录屏幕,但由于'/login'未用于路由而无法切换。

Navigator.of(context).popUntil('/login', (Route<dynamic> route) => false);

1 个答案:

答案 0 :(得分:1)

打开Login()时,您可以执行以下操作:

 Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => Login(),
                settings: RouteSettings(name: '/login')),
          );

您应该在推动路线时添加设置;具有自定义名称。如果不使用固定的路由名称。

当您想返回到Login()时:

 Navigator.popUntil(context, ModalRoute.withName("/login"));