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