Vietinė ekrano perdangų būsena
Vaizduokite dialogus ir apatinius langus (sheets) su „OverlayRequest?“ ir atvaizduokite juos naudodami „ScreenOverlayHost“ arba „AnimatedScreenOverlayHost“.
Vienas perdangos lizdas
Modeliuokite perdangą kaip „OverlayRequest?“ ir išvalykite ją, kad uždarytumėte.
Dialogų ir apatinių langų palaikymas
Naudokite „DialogRequest“ ir „BottomSheetRequest“ su papildomais duomenimis (payload).
Grįžimo tvarkos valdymas
Pirmiausia uždarykite perdangą, o tada pašalinkite puslapius iš steko naudodami grįžimo srities valdiklius.
Perdangos hosto šablonas
Išlaikykite perdangos būseną ir kurkite perdangos UI naudodami „overlayBuilder“.
Perdangos būsenos taisyklė
Animuotas perdangos hostas
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,
),
);
Svarbu
Kai perdanga matoma, blokuokite puslapio pašalinimo iš steko gestus su canPopTop kad išvengtumėte „iOS“ grįžimo braukiant gestu (back-swipe) nenuoseklumo.
Ankstesnis
Puslapiai ir resolverisKitas
Deklaratyvūs skirtukai