dialog<T> static method

Future<T?> dialog<T>(
  1. Widget child, {
  2. bool barrierDismissible = true,
  3. bool useRootNavigator = true,
  4. Color? barrierColor,
  5. RouteSettings? settings,
  6. VoidCallback? onDismiss,
})

Adaptive dialog (Material/Cupertino)

Implementation

static Future<T?> dialog<T>(
  Widget child, {
  bool barrierDismissible = true,
  bool useRootNavigator = true,
  Color? barrierColor,
  RouteSettings? settings,
  VoidCallback? onDismiss,
}) {
  final Future<T?> dialogFuture = isIOS
      ? showCupertinoDialog<T>(
          context: navigatorKey.currentContext!,
          barrierDismissible: barrierDismissible,
          useRootNavigator: useRootNavigator,
          builder: (BuildContext context) => child,
        )
      : showDialog<T>(
          context: navigatorKey.currentContext!,
          barrierDismissible: barrierDismissible,
          useRootNavigator: useRootNavigator,
          barrierColor: barrierColor ?? Colors.black54,
          routeSettings: settings,
          builder: (BuildContext context) => child,
        );

  return dialogFuture.then((T? value) {
    onDismiss?.call();
    return value;
  });
}