如何回到之前的路线?

Flu*_*Dev 2 routes dart flutter

首先,我不会像这样在 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()
  },
)
Run Code Online (Sandbox Code Playgroud)

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

Navigator.push(
                context,
                MaterialPageRoute(
                    builder: (BuildContext context) =>
                        Screen3(someInputData)));
Run Code Online (Sandbox Code Playgroud)

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

die*_*per 11

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

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

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

当您想从Screen4to返回时Screen2

 Navigator.popUntil(context, ModalRoute.withName("/screen2"));
Run Code Online (Sandbox Code Playgroud)

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

 Navigator.of(context).pop();
Run Code Online (Sandbox Code Playgroud)