showDialog static method

void showDialog({
  1. required Widget content,
  2. Widget? title,
  3. List<Widget>? actions,
  4. String? cancelText,
  5. String? confirmText,
  6. VoidCallback? onConfirm,
  7. VoidCallback? onCancel,
  8. MainAxisAlignment? actionsAlignment,
  9. bool close = false,
  10. Widget? foot,
  11. bool barrierDismissible = true,
})

Implementation

static void showDialog({
  required Widget content,
  Widget? title,
  List<Widget>? actions,
  String? cancelText,
  String? confirmText,
  VoidCallback? onConfirm,
  VoidCallback? onCancel,
  MainAxisAlignment? actionsAlignment,
  bool close = false,
  Widget? foot,
  bool barrierDismissible = true,
}) {
  Get.dialog(
    barrierDismissible: close ? false : barrierDismissible,
    Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        AlertDialog(
          title: Center(child: title),
          titleTextStyle: Theme.of(Get.context!).textTheme.titleMedium,
          shape: RoundedRectangleBorder(
            borderRadius:
                BorderRadius.all(Radius.circular(CommonStyle.roundedMd)),
          ),
          content: content,
          actions: actions ??
              <Widget>[
                Row(
                  children: [
                    Expanded(
                      child: ComButton(
                        plain: true,
                        child: Text(cancelText ?? '取消'.tr),
                        onPressed: () =>
                            onCancel != null ? onCancel.call() : Get.back(),
                      ),
                    ),
                    SizedBox(width: CommonStyle.spaceMd),
                    Expanded(
                      child: ComButton(
                        gradient: CommonColors.primaryGradient,
                        child: Text(confirmText ?? '确定'.tr),
                        onPressed: () => onConfirm?.call(),
                      ),
                    ),
                  ],
                )
              ],
          actionsAlignment: actionsAlignment ?? MainAxisAlignment.spaceAround,
        ),
        Visibility(
          visible: close,
          child: foot ??
              Container(
                padding: const EdgeInsets.all(6),
                decoration: BoxDecoration(
                  border: Border.all(
                    color: Colors.white60, // 边框颜色
                    width: 1.0, // 边框宽度
                  ),
                  borderRadius: BorderRadius.circular(CommonStyle.rounded),
                ),
                child: GestureDetector(
                  child: const Icon(
                    Icons.close,
                    size: 20,
                    color: Colors.white60,
                  ),
                  onTap: () {
                    Get.back();
                  },
                ),
              ),
        )
      ],
    ),
  );
}