show method

void show(
  1. BuildContext context, {
  2. Duration transitionDuration = Durations.short3,
  3. Widget transitionBuilder(
    1. BuildContext context,
    2. Animation<double> animation,
    3. Animation<double> secondaryAnimation,
    4. Widget child,
    )?,
})

Displays the configured dialog.

Implementation

void show(
  BuildContext context, {
  Duration transitionDuration = Durations.short3,
  Widget Function(
    BuildContext context,
    Animation<double> animation,
    Animation<double> secondaryAnimation,
    Widget child,
  )?
  transitionBuilder,
}) {
  showGeneralDialog(
    context: context,
    barrierDismissible: barrierDismissible,
    barrierColor: barrierColor,
    barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel,
    useRootNavigator: useRootNavigator,
    transitionDuration: transitionDuration,
    pageBuilder: (context, animation, secondaryAnimation) {
      final bottomInset = MediaQuery.of(context).viewInsets.bottom;

      return SafeArea(
        top: useSafeArea,
        bottom: useSafeArea,
        child: AnimatedPadding(
          padding: EdgeInsets.only(bottom: bottomInset),
          duration: const Duration(milliseconds: 250),
          curve: Curves.easeOutQuad,
          child: Align(
            alignment: Alignment.center,
            child: ConstrainedBox(
              constraints: const BoxConstraints(maxWidth: 450),
              child: Material(
                color: Colors.transparent,
                elevation: 0,
                child: Padding(
                  padding: const EdgeInsets.symmetric(
                    horizontal: 24,
                    vertical: 24,
                  ),
                  child: _bodyBuilder(context),
                ),
              ),
            ),
          ),
        ),
      );
    },
    transitionBuilder:
        transitionBuilder ??
        (context, animation, secondaryAnimation, child) {
          Widget animatedChild = FadeTransition(
            opacity: animation,
            child: ScaleTransition(
              scale: Tween<double>(begin: 0.95, end: 1.0).animate(
                CurvedAnimation(parent: animation, curve: Curves.easeOutCirc),
              ),
              child: child,
            ),
          );

          // Apply a perfectly smooth animated blur if blurSigma is provided!
          if (blurSigma > 0) {
            animatedChild = BackdropFilter(
              filter: ImageFilter.blur(
                sigmaX: blurSigma * animation.value,
                sigmaY: blurSigma * animation.value,
              ),
              child: animatedChild,
            );
          }

          return animatedChild;
        },
  ).then((value) => onClose?.call(value));
}