Κατάσταση επικάλυψης τοπική στην οθόνη

Αναπαραστήστε διαλόγους και 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.