#flutter #dart #navigation
Вопрос:
В моем приложении у меня всего 13 экранов, на некоторых из них есть ссылки на другие экраны, у меня также есть ящик, в котором есть ссылки на большинство из этих экранов.
На следующем рисунке показан единственный поток навигации, который мне нужен в приложении:
как вы можете видеть , единственными экранами, на которых есть ссылки на другие экраны home
, warehouses
close expiry
являются экраны и. Но поскольку ящик существует на каждом экране, я теперь могу перемещаться от warehouses
products
«потом warehouses
«, «потом products
» и так далее, или от close expiry
warehouses
products
» до home
» до « close expiry
до конца времен«.
я хочу вот чего: всякий раз, когда пользователь переходит по одной из home
прямых ссылок на экран, стек экранов должен содержать только home
экран и переход на экран с его потомками.
Другими словами, я хочу убедиться, что в стеке экранов есть только один экземпляр любого экрана в приложении. Мне не нужны петли, и я также не хочу избавляться от ящика.
Есть ли какой-нибудь способ добиться этого?
Заранее спасибо.
Комментарии:
1. Да, вы можете это сделать. Вы должны использовать Навигатор 2.0 и сохранять состояние навигации.
2. вы можете попробовать использовать навигатор 2.0 или использовать методы из навигации 1.0, такие как popUntil, чтобы вернуться на домашнюю страницу, и pushReplacement, чтобы перейти с одной страницы из ящика на другую
3. @moneeralhashim большое спасибо
4. @pedropimont большое тебе спасибо
5. нет, не обязательно, только если вам это нужно. особенность navigator 2.0 в том, что он дает вам полный контроль над вашим стеком страниц и обеспечивает лучший интерфейс в Интернете , он не имеет ничего общего с вложенной навигацией, и, на мой взгляд, в большинстве случаев это излишне, и если вы не планируете использовать веб, я бы остановился на navigator 1.0, так как navigator 2.0 намного сложнее и сложнее.