如何返回之前的路线?

问题描述 投票:0回答:1

首先,我不会像这样在 MaterialApp 中设置路线

    new MaterialApp(
      home: new Screen1(),
      routes: <String, WidgetBuilder> {
        '/screen1': (BuildContext context) => new Screen1(),
        '/screen2' : (BuildContext context) => new Screen2(),
        '/screen3' : (BuildContext context) => new Screen3(),
        '/screen4' : (BuildContext context) => new Screen4()
      },
    )

相反,我通过推送这样的新路线从应用程序中的不同位置进行路由:

    Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (BuildContext context) =>
                            Screen3(someInputData)));

例如,如何将当前屏幕弹出到 2 号屏幕?

flutter dart routes
1个回答
23
投票

假设:屏幕1 -> 屏幕2 -> 屏幕3 -> 屏幕4

当您打开

Screen2
时,您可以执行以下操作:

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

当您想从

Screen4
返回到
Screen2
时:

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

如果您只想返回到上一个屏幕,请使用:

 Navigator.of(context).pop();
© www.soinside.com 2019 - 2024. All rights reserved.