首先,我不会像这样在 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();