#flutter
#трепетание
Вопрос:
Можно ли удалить маршрут из середины стека навигатора?
RouteA -> RouteB -> RouteC -> RouteD -> RouteE
Чтобы удалить RouteE
, мы вызываем .pop
, можно ли удалить RouteC
, не удаляя RouteD
и RouteE
?
Я просто хочу удалить RouteC
из стека навигации, мы не удаляем другие маршруты, если пользователь дважды нажал кнопку «Назад», RouteE
тогда мы выскочим RouteD
, и теперь мы RouteB
не в RouteC
Комментарии:
1. такого способа нет, если вам нужно использовать
pop
— однако его можно пропустить, используя другиеpop*
методы2. Можете ли вы объяснить больше? Мне не нужно использовать
pop
3. в качестве альтернативы используйте
MaterialApp.router
и новыеNavigator
функции версии v2, дополнительные: medium.com/flutter /…4. или даже лучше, вместо использования
WillPopScope
использовать пользовательскийMaterialPageRoute
и переопределяющийFuture<RoutePopDisposition> willPop() async {
метод5. действительно: пользовательский
MaterialPageRoute
намного проще: я реализовалMyMaterialPageRoute.willPop
метод в простых 5 строках кода, и он работает просто отлично