Flutter / Dart - Navigator.pop (context) - Как вернуть два контекста? - PullRequest
0 голосов
/ 03 августа 2020

У меня есть;

  • экран / виджет Home() который вызывает;

  • экран / виджет MainStage() который вызывает;

  • метод будущего futureStage(), который строит;

  • PageViewBuilder StageBuilder() который содержит;

SwipeGestureRecognizer, который вызывает;

Navigator.push (context,
                  PageTransition(
                    type: PageTransitionType.downToUp,
                    child: HomeReply(),
                  ));
  • HomeReply() содержит;
  • appBar со стрелкой / кнопкой, которая позволяет пользователю;
  • Navigator.pop(context);

Как заставить навигатор вернуться к Home()?

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Оказывается, HomeReply () имеет дополнительное приложение MaterialApp в сборке. Как только я удалил это, все работало как обычно с Navigator.pop(context);.

0 голосов
/ 03 августа 2020

Навигатор представляет собой стек, поэтому вы можете использовать метод popUntil, чтобы вернуться на экран home ().

Navigator.popUntil(context, ModalRoute.withName('/home'));

или

Navigator.of(context).popUntil((route) => route.settings.name == "Home");
...