Как реализовать навигационный стек, как в приложениях Youtube и Instagram?

#dart #flutter #flutter-navigation

#dart #трепетать #flutter-навигация

Вопрос:

Я пытаюсь создать приложение с Flutter, в котором используются нижние панели навигации. Я хочу сохранить мои предыдущие посещенные экраны в навигационном стеке, как в приложениях Youtube и Instagram. Например, предположим, что у меня есть 3 разные нижние панели навигации (A, B и C). После нажатия на вкладки A, B и C соответственно, я хочу вернуться к C, B и A соответственно.

Это моя главная цель, но у меня есть и второстепенная цель, если ее возможно реализовать.

В Instagram и Youtube, если вы нажимаете вкладки в порядке A -> B -> C -> B -> C (теперь вы находитесь на вкладке C), а затем, когда вы начали нажимать кнопку «Назад», она возвращает вас к вкладкам C -> B -> A. В принципе, каждая вкладка может быть помещена один раз в навигационный стек. Если вы посещаете одну и ту же вкладку более одного раза, предыдущий экран той же вкладки удаляется из навигационного стека.

Я два дня искал решение этой проблемы, но не мог найти. Я даже протестировал приложение flutter-go, созданное разработчиками alibaba, когда я нажимаю кнопку «Назад», приложение просто закрывается.

Я был бы признателен за любую помощь в решении этой проблемы.

Комментарии:

1. У меня такая же идея. Вы нашли решение? Пожалуйста, поделитесь, если у вас есть.

Ответ №1:

Navigator.of(context).pushNamedAndRemoveUntil('/screenB', ModalRoute.withName('/screenA')) ;

попробуйте это на последнем фрагменте C