kshowDialog function
Future<void>
kshowDialog(
- BuildContext context, {
- required Widget child,
- int radius = 0,
- Color? backgroundColor,
- Color? barrierColor,
- bool barrierDismissible = true,
- EdgeInsets insetPadding = const EdgeInsets.only(left: 16, right: 16),
- EdgeInsetsGeometry contentPadding = const EdgeInsets.all(0),
- AlignmentGeometry? contentAlignment = Alignment.topLeft,
- AlignmentGeometry? dialogAlignment = Alignment.center,
自定义对话框
默认宽度距离边框16dp
context
child
内容
radius
圆角
backgroundColor
背景颜色
barrierColor
dialog空白区域颜色
barrierDismissible
点击空白区域是否隐藏
insetPadding
外边距
contentPadding
内边距
contentAlignment
内容对其方式
dialogAlignment
对话框显示位置
kshowDialog(
context,
insetPadding: EdgeInsets.only(left: 32, right: 32),
backgroundColor: Colors.red,
contentPadding: EdgeInsets.all(16),
radius: 16,
child: ,
);
```dart
Implementation
Future<void> kshowDialog(
BuildContext context, {
required Widget child,
int radius = 0,
Color? backgroundColor,
Color? barrierColor,
bool barrierDismissible = true,
EdgeInsets insetPadding = const EdgeInsets.only(left: 16, right: 16),
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 SimpleDialog(
///Dialog全屏显示,就要将Dialog的insetPadding设为0
insetPadding: insetPadding,
contentPadding: contentPadding,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(radius.r))),
backgroundColor: backgroundColor,
alignment: dialogAlignment,
children: [
Container(
alignment: contentAlignment,
width: double.maxFinite,
child: child,
)
],
);
});
}