Вернуться к предыдущему маршруту в флаттер - PullRequest
0 голосов
/ 27 октября 2018

Прежде всего, я не настраиваю свои маршруты в 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 Ответ

0 голосов
/ 27 октября 2018

Asumming: Screen1 -> Screen2 -> Screen3 -> Screen4

Когда вы открываете Screen2, вы можете сделать что-то вроде этого:

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

А когда вы хотите вернуться с Screen4 на Screen2:

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

Если вы просто хотите вернуться к предыдущему экрану, используйте:

 Navigator.of(context).pop();
...