showLoadingDialog static method

void showLoadingDialog(
  1. BuildContext context, {
  2. Color? indicatorColor,
  3. String? promptText,
  4. TextStyle? promptTextStyle,
  5. dynamic dismiss()?,
})

@description: 显示loading弹窗对话框 @param {} @return {}

Implementation

static void showLoadingDialog(BuildContext context,
    {Color? indicatorColor,
    String? promptText,
    TextStyle? promptTextStyle,
    Function()? dismiss}) {
  showDialog(
      // showDialog中已经给对话框设置了最小宽度约束
      barrierDismissible: false, // 点击遮罩不关闭对话框
      context: context,
      barrierColor: null,
      builder: (BuildContext context) {
        return WillPopScope(
            onWillPop: () {
              if (dismiss != null) dismiss();
              return Future(() => true);
            },
            child: UnconstrainedBox(
              constrainedAxis: Axis.vertical,
              child: SizedBox(
                width: 200.w,
                height: 200.w,
                child: AlertDialog(
                  elevation: 2,
                  shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(8.w)),
                  contentPadding: EdgeInsets.fromLTRB(24.0, 20.0, 24.0, 10.0),
                  content: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      CircularProgressIndicator(
                          color: indicatorColor ??
                              Color.fromRGBO(255, 110, 53, 1),
                          strokeWidth: 2.w),
                      Padding(padding: EdgeInsets.only(top: 16.w)),
                      Text(
                        promptText ?? '加载中...',
                        style: promptTextStyle ??
                            TextStyle(
                                color: indicatorColor ??
                                    Color.fromRGBO(255, 110, 53, 1),
                                fontSize: 18.sp,
                                fontWeight: FontWeight.w300),
                      )
                    ],
                  ),
                ),
              ),
            ));
      });
}