showAlertDialog static method
void
showAlertDialog({
- Widget? title,
- Widget? content,
- String contentText = "",
- String? cancelText,
- String? confirmText,
- Widget? cancel,
- Widget? confirm,
- VoidCallback? onCancel,
- VoidCallback? onConfirm,
- List<
CupertinoDialogAction> ? actions, - bool showCancel = true,
- bool barrierDismissible = false,
Implementation
static void showAlertDialog({
Widget? title,
Widget? content,
String contentText = "",
String? cancelText,
String? confirmText,
Widget? cancel,
Widget? confirm,
VoidCallback? onCancel,
VoidCallback? onConfirm,
List<CupertinoDialogAction>? actions,
bool showCancel = true,
bool barrierDismissible = false,
}) {
final context = Get.context!;
Widget baseAlertDialog;
// 判断当前平台
bool isIOS = Theme.of(context).platform == TargetPlatform.iOS ||
Theme.of(context).platform == TargetPlatform.macOS;
if (!isIOS) {
baseAlertDialog = AlertDialog(
contentPadding: const EdgeInsets.all(0),
title: Center(
child: title ?? Text(ComLocalizations.of(context).warmTips),
),
titleTextStyle: Theme.of(Get.context!).textTheme.titleMedium,
// titlePadding: const EdgeInsets.fromLTRB(24, 24, 24, 0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(context.comTheme.shapes.resolvedDialogRadius)),
),
content: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(24, 12, 24, 20),
child: content ??
Text(
contentText,
textAlign: TextAlign.center,
),
),
Divider(
thickness: 0.5,
height: 0,
color: Get.isDarkMode ? Colors.white : Colors.black12,
),
SizedBox(
height: 46,
width: double.infinity,
child: Row(
children: [
Visibility(
visible: showCancel,
child: Expanded(
child: Material(
color: Colors.transparent,
borderRadius: const BorderRadius.only(
bottomLeft: Radius.circular(16),
),
clipBehavior: Clip.hardEdge,
child: InkWell(
child: Container(
height: double.infinity,
alignment: Alignment.center,
clipBehavior: Clip.hardEdge,
decoration: const BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(16)),
),
child: cancel ??
Text(ComLocalizations.of(context).cancel),
),
onTap: () =>
onCancel != null ? onCancel.call() : Get.back(),
),
),
),
),
Visibility(
visible: showCancel,
child: VerticalDivider(
thickness: 0.5,
width: 0,
color: Get.isDarkMode ? Colors.white : Colors.black12,
),
),
Expanded(
child: Material(
color: Colors.transparent,
borderRadius: const BorderRadius.only(
bottomRight: Radius.circular(16),
),
clipBehavior: Clip.hardEdge,
child: InkWell(
child: Container(
height: double.infinity,
alignment: Alignment.center,
decoration: const BoxDecoration(
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(16)),
),
child: confirm ??
Text(ComLocalizations.of(context).confirm),
),
onTap: () =>
onConfirm != null ? onConfirm.call() : Get.back(),
),
),
),
],
),
),
],
),
);
} else {
baseAlertDialog = CupertinoAlertDialog(
title: title ??
Center(
child: Text(ComLocalizations.of(context).warmTips),
),
content: Padding(
padding: const EdgeInsets.only(top: 12),
child: content,
),
actions: actions ??
<CupertinoDialogAction>[
if (showCancel) ...[
CupertinoDialogAction(
onPressed: () =>
onCancel != null ? onCancel.call() : Get.back(),
child: cancel ?? Text(ComLocalizations.of(context).cancel),
),
],
CupertinoDialogAction(
onPressed: () => onConfirm?.call(),
child: confirm ?? Text(ComLocalizations.of(context).confirm),
),
],
);
}
Get.dialog(
baseAlertDialog,
barrierDismissible: barrierDismissible,
);
}