결정적인 뒤로가기 동작

오버레이 닫기와 스택 pop이 항상 같은 순서로 일어나도록 하나의 뒤로가기 정책을 정의합니다.

오버레이 우선

페이지 스택을 pop하기 전에 활성 오버레이를 닫습니다.

루트 인식

스택 길이가 1이면 강제 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 제스처 사이에서 사용자가 혼동하지 않도록 합니다.