flutter - 如何回到之前的路线?

标签 flutter dart routes

首先,我没有像这样在 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?

最佳答案

假设:屏幕 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();

关于flutter - 如何回到之前的路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53025191/

相关文章:

regex - 如何将数字的最后 9 位与空间 flutter 相匹配

flutter - 如何将元素设置到 SingleCildScrollView 的底部?

Android 依赖项 'android.arch.lifecycle:runtime' 的编译和运行时版本不同

dart - 是否可以在 Dart2 中将带有可选参数的函数指定为函数参数?

routes - sveltekit 基于哈希的路由

dart - Flutter:使用 navigator.dart 时断言失败

flutter - 当鼠标悬停在 flutter 的 AppBar 中时,如何使完整菜单显示出来?

canvas - 无法在IOS上绘制Canvas

ruby-on-rails - 在 Rails 中设置静态路由

algorithm - 在无向未加权图中查找给定长度的路径数