showDialog<T> function

Future<T?> showDialog<T>({
  1. required BuildContext context,
  2. Widget? child,
  3. WidgetBuilder? builder,
  4. bool barrierDismissible = true,
  5. bool useRootNavigator = true,
})

Shows a themed dialog and returns the dialog widget.

Implementation

Future<T?> showDialog<T>({
  required BuildContext context,
  Widget? child,
  WidgetBuilder? builder,
  bool barrierDismissible = true,
  bool useRootNavigator = true,
}) {
  assert(child != null || builder != null,
      'Either child or builder must be provided.');
  return showGeneralDialog<T>(
    context: context,
    barrierDismissible: barrierDismissible,
    useRootNavigator: useRootNavigator,
    barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel,
    barrierColor: Colors.black.withValues(alpha: 0.5),
    transitionDuration: const Duration(milliseconds: 250),
    transitionBuilder: (BuildContext context, Animation<double> animation,
            Animation<double> secondary, Widget child) =>
        FadeTransition(
      opacity: animation,
      child: ScaleTransition(
        scale: Tween<double>(begin: 0.9, end: 1).animate(
          CurvedAnimation(parent: animation, curve: Curves.easeOutBack),
        ),
        child: child,
      ),
    ),
    pageBuilder: (BuildContext context, Animation<double> animation,
            Animation<double> secondary) =>
        child ?? builder!(context),
  );
}