Детермінована поведінка повернення

Визначте єдину політику повернення, щоб закриття оверлеїв і вилучення елементів зі стеків завжди відбувалися в одному й тому самому порядку.

Спершу оверлеї

Закривайте активні оверлеї перед вилученням елементів зі стеків сторінок.

Врахування кореня

Коли довжина стека дорівнює одному, делегуйте дію батьківському елементу замість примусового pop.

Врахування вкладок

У режимі вкладок спочатку перейдіть до першої вкладки в корені, а вже потім запускайте обробку виходу на рівні застосунку.

Патерн керування поверненням

Використовуйте DeclarativePagesBackScope для стеків сторінок і колбеків вкладок для коренів вкладок.

Політика повернення

DeclarativePagesBackScope

return DeclarativePagesBackScope(
  pages: _pages,
  popTopPage: _popTop,
  isOverlayVisible: _overlay != null,
  dismissOverlay: _dismissOverlay,
  onBackAtRoot: _onBackAtRoot,
  child: DeclarativePagesNavigator(
    pages: _pages,
    buildPage: _buildPage,
    onPopTop: _popTop,
    canPopTop: () => _overlay == null,
  ),
);
Стабільність UX

Зберігайте єдиний послідовний порядок єдиний послідовний порядок для всіх подій повернення, щоб уникнути плутанини між системною дією «назад» в Android і жестами в iOS.