showDialog static method

dynamic showDialog({
  1. BuildContext? context,
  2. bool barrierDismissible = true,
  3. Color? barrierColor,
  4. String? title,
  5. String? content,
  6. bool showConfirmButton = true,
  7. bool showCancelButton = false,
  8. String confirmButtonText = "确认",
  9. Color? confirmButtonColor,
  10. bool confirmButtonDisabled = false,
  11. String cancelButtonText = "取消",
  12. Color? cancelButtonColor,
  13. bool cancelButtonDisabled = false,
  14. VoidCallback? onConfirm,
  15. VoidCallback? onCancel,
  16. bool isCloseWhenTap = true,
  17. Widget? buttomWidget,
})

Implementation

static showDialog({
  BuildContext? context,
  bool barrierDismissible = true,
  Color? barrierColor,
  String? title,
  String? content,
  bool showConfirmButton = true,
  bool showCancelButton = false,
  String confirmButtonText = "确认",
  Color? confirmButtonColor,
  bool confirmButtonDisabled = false,
  String cancelButtonText = "取消",
  Color? cancelButtonColor,
  bool cancelButtonDisabled = false,
  VoidCallback? onConfirm,
  VoidCallback? onCancel,
  bool isCloseWhenTap = true,
  Widget? buttomWidget
}) {
  final betterDialogContext = context ?? BetterUi.currentContext;
  if (betterDialogContext == null) {
    return;
  }
  showCupertinoDialog(
    context: betterDialogContext,
    barrierDismissible: barrierDismissible,
    barrierColor:
        barrierColor ?? ColorUtil.hexToColor("#000000").withAlpha(178),
    builder: (context) {
      final dialogTheme = BetterUtil.getThemeExtension(context)!.dialogTheme;
      final bgColor = dialogTheme.bgColor ?? Colors.white;

      return Center(
        child: CupertinoPopupSurface(
          isSurfacePainted: false,
          child: Container(
            color: bgColor,
            child: SizedBox(
              width: 320.bw,
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: [
                  SizedBox(height: 26.bw),
                  if (title != null)
                    Text(
                      title,
                      style: TextStyle(
                        fontSize: 16.bsp,
                        fontWeight: FontWeight.w600,
                        decoration: TextDecoration.none,
                        color:
                            dialogTheme.titleColor ??
                            ColorUtil.hexToColor("#323232"),
                      ),
                    ),
                  if (content != null)
                    Padding(
                      padding: EdgeInsetsGeometry.only(
                        top: 8.bw,
                        left: 26.bw,
                        right: 26.bw,
                        bottom: 26.bw,
                      ),
                      child: Text(
                        content,
                        style: TextStyle(
                          fontSize: 14.bsp,
                          decoration: TextDecoration.none,
                          color:
                              dialogTheme.contentColor ??
                              ColorUtil.hexToColor("#646566"),
                          fontWeight: FontWeight.normal,
                        ),
                      ),
                    ),
                  if(buttomWidget!=null)buttomWidget,
                  if ((showCancelButton || showConfirmButton) && buttomWidget==null)
                    _renderDefaultButton(
                      context: context,
                      dialogTheme: dialogTheme,
                      showConfirmButton: showConfirmButton,
                      showCancelButton: showCancelButton,
                      confirmButtonText: confirmButtonText,
                      confirmButtonColor: confirmButtonColor,
                      confirmButtonDisabled: confirmButtonDisabled,
                      cancelButtonText: cancelButtonText,
                      cancelButtonColor: cancelButtonColor,
                      cancelButtonDisabled: cancelButtonDisabled,
                      onConfirm: onConfirm,
                      onCancel: onCancel,
                      isCloseWhenTap: isCloseWhenTap,
                    ),
                ],
              ),
            ),
          ),
        ),
      );
    },
  );
}