State overlay lokal layar

Representasikan dialog dan sheet dengan OverlayRequest? lalu render melalui ScreenOverlayHost atau AnimatedScreenOverlayHost.

Satu slot overlay

Modelkan overlay sebagai OverlayRequest? dan kosongkan untuk menutupnya.

Dukungan dialog dan sheet

Gunakan DialogRequest dan BottomSheetRequest dengan data payload opsional.

Kontrol urutan back

Tutup overlay dulu, lalu pop halaman lewat widget back-scope.

Pola overlay host

Simpan overlay di state dan bangun UI overlay melalui overlayBuilder.

Aturan state overlay

Overlay host animasi

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

Saat overlay terlihat, blokir gestur pop dengan canPopTop agar tidak ada inkonsistensi back-swipe di iOS.