show static method

void show({
  1. required BuildContext context,
  2. required String dialogId,
  3. required Widget dialog,
  4. bool barrierDismissible = true,
  5. Color barrierColor = Colors.black54,
})

Implementation

static void show({
  required BuildContext context,
  required String dialogId,
  required Widget dialog,
  bool barrierDismissible = true,
  Color barrierColor = Colors.black54,
}) {
  dismiss(dialogId);

  final overlay = Overlay.of(context, rootOverlay: true);
  late OverlayEntry overlayEntry;

  overlayEntry = OverlayEntry(
    builder: (context) => Stack(
      children: [
        Positioned.fill(
          child: GestureDetector(
            behavior: HitTestBehavior.opaque,
            onTap: barrierDismissible ? () => dismiss(dialogId) : null,
            child: Container(
              color: barrierColor,
            ),
          ),
        ),
        Center(
          child: Material(
            color: Colors.transparent,
            child: dialog,
          ),
        ),
      ],
    ),
  );

  overlay.insert(overlayEntry);
  _overlays[dialogId] = overlayEntry;
}