kshowDialogMinSize function

Future<void> kshowDialogMinSize(
  1. BuildContext context, {
  2. required Widget child,
  3. double minWidth = 0.0,
  4. double minHeight = 0.0,
  5. int radius = 0,
  6. Color? backgroundColor,
  7. Color? barrierColor,
  8. bool barrierDismissible = true,
  9. EdgeInsets insetPadding = const EdgeInsets.only(left: 0, right: 0),
  10. EdgeInsetsGeometry contentPadding = const EdgeInsets.all(0),
  11. AlignmentGeometry? contentAlignment = Alignment.topLeft,
  12. AlignmentGeometry? dialogAlignment = Alignment.center,
})

自定义对话框-设置最小宽高

context child 内容 minWidth 最小宽度 minHeight 最小高度 radius 圆角 backgroundColor 背景颜色 barrierColor dialog空白区域颜色 barrierDismissible 点击空白区域是否隐藏 insetPadding 外边距 contentPadding 内边距 contentAlignment 内容对其方式 dialogAlignment 对话框显示位置

            kshowDialogMinSize(
              context,
              minWidth: 200,
              minHeight: 200,
              backgroundColor: Colors.red,
              contentPadding: EdgeInsets.all(16),
              radius: 16,
              child: Column(),
            );
```dart

Implementation

Future<void> kshowDialogMinSize(
  BuildContext context, {
  required Widget child,
  double minWidth = 0.0,
  double minHeight = 0.0,
  int radius = 0,
  Color? backgroundColor,
  Color? barrierColor,
  bool barrierDismissible = true,
  EdgeInsets insetPadding = const EdgeInsets.only(left: 0, right: 0),
  EdgeInsetsGeometry contentPadding = const EdgeInsets.all(0),
  AlignmentGeometry? contentAlignment = Alignment.topLeft,
  AlignmentGeometry? dialogAlignment = Alignment.center,
}) async {
  return await showDialog<void>(
      context: context,
      barrierDismissible: barrierDismissible,
      barrierColor: barrierColor,
      //在iOS上,顶部和下部当有SafeArea时,会留有一片区域空白,原因是showDialog有个属性useSafeArea默认为 true,改为fasle即可
      useSafeArea: false,
      builder: (BuildContext context) {
        return UnconstrainedBox(
          constrainedAxis: Axis.vertical,
          child: SimpleDialog(
            ///Dialog全屏显示,就要将Dialog的insetPadding设为0
            insetPadding: insetPadding,
            contentPadding: contentPadding,
            shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.all(Radius.circular(radius.r))),
            backgroundColor: backgroundColor,
            alignment: dialogAlignment,
            children: [
              ConstrainedBox(
                  constraints: BoxConstraints(
                    minWidth: minWidth.w,
                    minHeight: minHeight.h,
                  ),
                  child: Container(
                    alignment: contentAlignment,
                    child: child,
                  ))
            ],
          ),
        );
      });
}