Рецепты

Вкладки и вложенные ветви

Активная вкладка, переход в конкретный дочерний стек, сохранение соседних ветвей и очистка после выхода.

v1.1.0Средний уровень

Вкладки и вложенные ветви

Показать выбранную вкладку

dart
const NavigationActiveOutlet(parentScopeId: NavigationScopeId('shell'))

Перейти в Profile и сохранить Catalog

dart
await navigation.activateBranch(const NavigationScopeId('profile-tab'));

Стек Catalog не меняется.

Открыть Product именно в Catalog

dart
navigation.push<void>(
  const ProductDestination('42'),
  mountId: const NavigationMountId('catalog-tab'),
  scopeId: const NavigationScopeId('catalog-tab'),
);

Место назначения задано явно, даже если сейчас активен Profile.

Показать постоянный дочерний Navigator

Для постоянно видимого дочернего Navigator используйте NavigationOutlet(scopeId: ...), например в интерфейсе master–detail, где список и детали показаны одновременно.

Очистить приватную ветвь после выхода

После выхода очистите приватную ветвь через resetBranch, затем активируйте публичную. Не вызывайте resetBranch при обычном переключении вкладок: иначе пользователь потеряет историю внутри вкладки.