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.
Sebelumnya
Halaman sebagai DataBerikutnya
Tab Deklaratif