#ios #flutter #navigation
#iOS #трепетать #навигация
Вопрос:
При нажатии на новый экран и желании отключить возможность прокрутки назад я нашел WillPopScope
виджет.
WillPopScope( onWillPop: () async =gt; false, child: lt;some childgt;
тем не менее, это предотвращает свайп-жест независимо от того, вернусь я или нет true
false
. Можно ли сообщить этому виджету, что он может появляться в определенных состояниях экрана?
Так эффективно, что я бы:
WillPopScope( onWillPop: () async =gt; widget._canSwipeBack, child: lt;some childgt;
Прямо сейчас у меня есть добавить/не добавлять виджет в зависимости от состояния экрана, что кажется довольно странным.
Ответ №1:
Пожалуйста, обратитесь к приведенному ниже коду
Без обертывания виджета с помощью WillPopScope обычно его выполняет Navigator.pop(контекст);
// disables swiping back WillPopScope( // disables swiping back or navigating back onWillPop: () {}, child: Scaffold( body: Container(), ), );
WillPopScope( onWillPop: () { // whenever you want to navigate back to specific route Navigator.push( context, MaterialPageRoute(builder: (context) =gt; SecondRoute()), ); }, child: Scaffold( body: Container(), ), );
WillPopScope( onWillPop: () { // pop back Navigator.pop(context); }, child: Scaffold( body: Container(), ), );