openDialog static method
提示框
Implementation
static Future<bool?> openDialog({
String content = '--',
String? confirmText,
String? cancelText,
String? titleText,
String? icon,
}) {
return showDialog(
context: HbRouter.key.currentContext!,
builder: (BuildContext context) {
return Center(
child: Material(
borderRadius: BorderRadius.circular(8.w),
child: Container(
width: 300.w,
padding: EdgeInsets.symmetric(vertical: 16.w),
decoration: HbStyle.toBoxR8(color: HbColor.bgWhite),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Stack(
children: <Widget>[
Container(
alignment: Alignment.center,
width: double.infinity,
child: Text(
titleText ?? '',
style: const TextStyle(fontWeight: FontWeight.w600),
),
),
Positioned(
right: 16.w,
child: GestureDetector(
onTap: () {
HbNav.pop(arguments: false);
},
child: Icon(Icons.close, size: 18.sp),
),
),
],
),
SizedBox(height: 16.w),
Visibility(
visible: (icon ?? _defaultDialogIcon).isNotEmpty,
child: HbIcon(
icon: icon ?? _defaultDialogIcon,
width: 48.w,
height: 48.w,
).pb(12.w),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 28.w),
child: Text(
content,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 12.sp,
height: 16 / 12,
fontWeight: FontWeight.w400,
),
),
),
SizedBox(height: 18.w),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Row(
children: <Widget>[
Visibility(
visible: cancelText != null,
child: Expanded(
child: HbButton(
height: 36.w,
bgColor: HbColor.bgGrey,
text: cancelText ?? 'Cancel',
onTap: () {
HbNav.pop(arguments: false);
},
),
),
),
Visibility(
visible: cancelText != null,
child: SizedBox(width: 8.w),
),
Expanded(
child: HbButton(
height: 36.w,
text: confirmText ??
HbCommonLocalizations.current.confirm,
onTap: () {
HbNav.pop(arguments: true);
},
),
),
],
),
),
],
),
),
),
);
},
);
}