showDialog<T> static method
Future<T?>
showDialog<T>({
- Widget? title,
- Widget? content,
- Widget? cancel,
- Widget? confirm,
- EdgeInsets? titlePadding,
- EdgeInsets? contentPadding,
- EdgeInsets? actionPadding,
- VoidCallback? onConfirm,
- VoidCallback? onCancel,
- bool showCancel = true,
- List<
Widget> ? actions, - Widget? foot,
- bool showClose = false,
- bool barrierDismissible = false,
- TextDirection? actionTextDirection,
- double actionSpacing = _defaultActionSpacing,
显示对话框
Implementation
static Future<T?> showDialog<T>({
Widget? title,
Widget? content,
Widget? cancel,
Widget? confirm,
EdgeInsets? titlePadding,
EdgeInsets? contentPadding,
EdgeInsets? actionPadding,
VoidCallback? onConfirm,
VoidCallback? onCancel,
bool showCancel = true,
List<Widget>? actions,
Widget? foot,
bool showClose = false,
bool barrierDismissible = false,
TextDirection? actionTextDirection,
double actionSpacing = _defaultActionSpacing,
}) async {
final context = ComContext.context;
final themeData = Theme.of(context);
final dialogTheme = themeData.dialogTheme;
return await material.showDialog(
context: context,
barrierDismissible: barrierDismissible,
builder: (context) => PopScope(
canPop: barrierDismissible,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(context.comTheme.shapes.resolvedDialogRadius),
),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
if (title != null) ...[
_buildDialogTitle(
context: context,
title: title,
titlePadding: titlePadding,
content: content,
dialogTheme: dialogTheme,
themeData: themeData,
),
],
if (content != null) ...[
_buildDialogContent(
context: context,
content: content,
contentPadding: contentPadding ??
EdgeInsets.fromLTRB(24, title == null ? 36 : 16, 24,
title == null ? 28 : 24),
dialogTheme: dialogTheme,
themeData: themeData,
),
],
_buildDialogFooter(
context: context,
cancel: cancel,
confirm: confirm,
onConfirm: onConfirm,
onCancel: onCancel,
showCancel: showCancel,
actions: actions,
actionPadding: actionPadding,
actionTextDirection: actionTextDirection,
actionSpacing: actionSpacing,
),
],
),
),
if (showClose) ...[
_buildCloseButton(context: context, foot: foot),
],
],
),
),
);
}