Superpositions
Représentez les boîtes de dialogue et les volets avec OverlayRequest? et affichez-les via ScreenOverlayHost ou AnimatedScreenOverlayHost.
Un seul emplacement d'overlay
Modélisez la superposition en tant que OverlayRequest? et effacez-la pour la fermer.
Prise en charge des boîtes de dialogue et des volets
Utilisez DialogRequest et BottomSheetRequest avec des données de charge utile facultatives.
Contrôle de l'ordre de retour
Fermez d'abord la superposition, puis retirez les pages via les widgets de portée de retour.
Modèle d'overlay host
Conservez la superposition dans l'état et construisez son interface utilisateur via overlayBuilder.
Règle d'état d'overlay
Overlay host animé
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,
),
);
Important
Quand la superposition est visible, bloquez les gestes de retour avec canPopTop pour éviter les incohérences de balayage de retour sur iOS.
Précédent
Pages et résolveurSuivant
Onglets déclaratifs