Keadaan Overlay Setempat Skrin

Wakilkan dialog dan sheet sebagai OverlayRequest? lalu render melalui ScreenOverlayHost atau AnimatedScreenOverlayHost.

Satu slot overlay

Modelkan overlay sebagai OverlayRequest? dan kosongkannya untuk menutup.

Sokongan dialog dan sheet

Gunakan DialogRequest dan BottomSheetRequest dengan data payload pilihan.

Kawalan susunan kembali

Tutup overlay dahulu, kemudian pop halaman, melalui widget back-scope.

Corak Host Overlay

Simpan overlay dalam keadaan dan bina UI overlay melalui overlayBuilder.

Peraturan Keadaan Overlay

Host Overlay Beranimasi

return AnimatedScreenOverlayHost(
  overlay: _overlay,
  onDismiss: _dismissOverlay,
  overlayBuilder: (context, req, dismiss) => switch (req) {
    DialogRequest(key: 'hello') => AlertDialog(
      title: const Text('Hello'),
      actions: [TextButton(onPressed: dismiss, child: const Text('Close'))],
    ),
    _ => null,
  },
  child: DeclarativePagesNavigator(
    pages: _pages,
    buildPage: _buildPage,
    onPopTop: _popTop,
    canPopTop: () => _overlay == null,
  ),
);
Penting

Apabila overlay kelihatan, sekat gesture pop dengan canPopTop bagi mengelakkan ketakselarasan back-swipe pada iOS.