Κατάσταση επικάλυψης τοπική στην οθόνη
Αναπαραστήστε διαλόγους και sheets με OverlayRequest? και αποδώστε τα μέσω ScreenOverlayHost ή AnimatedScreenOverlayHost.
Μία θέση επικάλυψης
Μοντελοποιήστε την επικάλυψη ως OverlayRequest? και καθαρίστε τη για να κλείσει.
Υποστήριξη διαλόγων και sheets
Χρησιμοποιήστε DialogRequest και BottomSheetRequest με προαιρετικά δεδομένα payload.
Έλεγχος σειράς επιστροφής
Κλείστε πρώτα την επικάλυψη και μετά αφαιρέστε σελίδες μέσω widgets χειρισμού επιστροφής.
Μοτίβο Overlay Host
Κρατήστε την επικάλυψη στην κατάσταση και δημιουργήστε το UI της επικάλυψης μέσω του overlayBuilder.
Κανόνας κατάστασης επικάλυψης
Κινούμενος Overlay Host
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,
),
);
Σημαντικό
Όταν η επικάλυψη είναι ορατή, μπλοκάρετε τις κινήσεις pop με canPopTop για να αποφευχθεί ασυνέπεια με τη χειρονομία επιστροφής στο iOS.
Προηγούμενο
Σελίδες και ResolverΕπόμενο
Δηλωτικές καρτέλες