မျက်နှာပြင်အလိုက် local overlay state

OverlayRequest? ဖြင့် dialogs နှင့် sheets များကို ကိုယ်စားပြုပြီး ScreenOverlayHost သို့မဟုတ် AnimatedScreenOverlayHost မှတဆင့် render လုပ်ပါ.

တစ်ခုတည်းသော overlay slot

Overlay ကို OverlayRequest? အဖြစ် model လုပ်ပြီး ပိတ်ရန် clear လုပ်ပါ.

Dialog နှင့် sheet support

Optional payload data ပါသော DialogRequest နှင့် BottomSheetRequest ကို သုံးပါ.

Back order ကို ထိန်းချုပ်ခြင်း

Overlay ကို အရင် dismiss လုပ်ပြီး နောက်မှ back-scope widgets မှတဆင့် pages ကို pop လုပ်ပါ.

Overlay host pattern

Overlay ကို state ထဲတွင်ထားပြီး overlayBuilder ဖြင့် overlay UI ကို တည်ဆောက်ပါ.

Overlay state rule

အန်နီမေးရှင်းပါသော 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,
  ),
);
Important

Overlay မြင်ရနေချိန်တွင်, pop gestures ကို canPopTop ဖြင့် ပိတ်ပါ iOS ပေါ်တွင် back-swipe မညီညွတ်မှုကို ရှောင်ရန်.