Lokalno stanje prekrivnega sloja na zaslonu

Predstavite dialoge in liste kot OverlayRequest? ter jih izrišite prek ScreenOverlayHost ali AnimatedScreenOverlayHost.

Eno mesto za prekrivni sloj

Prekrivni sloj modelirajte kot OverlayRequest? in ga počistite za zapiranje.

Podpora za dialoge in liste

Uporabite DialogRequest in BottomSheetRequest z neobveznimi podatki payload.

Nadzor vrstnega reda pri gumbu Nazaj

Najprej zaprite prekrivni sloj, nato zapirajte strani prek widgetov za back-scope.

Vzorec gostitelja prekrivnih slojev

Prekrivni sloj hranite v stanju in zgradite UI prekrivnega sloja prek overlayBuilder.

Pravilo stanja prekrivnega sloja

Animirani gostitelj prekrivnih slojev

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,
  ),
);
Pomembno

Ko je prekrivni sloj viden, blokirajte geste pop z canPopTop da se izognete nedoslednosti gesta povleci nazaj na iOS.