101 lines
2.8 KiB
Dart
101 lines
2.8 KiB
Dart
import 'package:awesome_dialog/awesome_dialog.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
void showAwesomeDialog({
|
|
required BuildContext context,
|
|
required Widget body,
|
|
required VoidCallback onOk,
|
|
required VoidCallback onCancel,
|
|
}) {
|
|
AwesomeDialog(
|
|
context: context,
|
|
dialogType: DialogType.noHeader,
|
|
animType: AnimType.scale,
|
|
body: body,
|
|
dialogBackgroundColor: Theme.of(context).colorScheme.surfaceContainer,
|
|
btnOkText: "确认",
|
|
btnCancelText: "取消",
|
|
btnOkColor: Colors.orange,
|
|
btnCancelColor: Colors.grey,
|
|
buttonsBorderRadius: BorderRadius.circular(10),
|
|
headerAnimationLoop: false,
|
|
dismissOnTouchOutside: false,
|
|
dismissOnBackKeyPress: true,
|
|
btnOk: ElevatedButton(
|
|
onPressed: onOk,
|
|
style: ElevatedButton.styleFrom(
|
|
elevation: 0,
|
|
backgroundColor: Theme.of(context).colorScheme.primary,
|
|
foregroundColor: Colors.white,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(8),
|
|
),
|
|
padding: EdgeInsets.symmetric(horizontal: 20, vertical: 6),
|
|
textStyle: TextStyle(
|
|
fontSize: 14,
|
|
fontWeight: FontWeight.bold,
|
|
fontFamily: 'CustomFont'),
|
|
),
|
|
child: Text("确认"),
|
|
),
|
|
btnCancelOnPress: onCancel,
|
|
).show();
|
|
}
|
|
|
|
// 显示成功提示
|
|
void showSuccessTip(BuildContext context, String message) {
|
|
AwesomeDialog(
|
|
context: context,
|
|
dialogType: DialogType.success,
|
|
animType: AnimType.scale,
|
|
title: message,
|
|
btnOkText: "好的",
|
|
btnOkColor: Colors.green,
|
|
btnOkOnPress: () {},
|
|
autoHide: Duration(seconds: 2),
|
|
).show();
|
|
}
|
|
|
|
// 显示失败提示
|
|
void showErrorTip(BuildContext context, String message) {
|
|
AwesomeDialog(
|
|
context: context,
|
|
dialogType: DialogType.error,
|
|
animType: AnimType.scale,
|
|
title: message,
|
|
btnOkText: "好的",
|
|
btnOkColor: Colors.red,
|
|
btnOkOnPress: () {},
|
|
autoHide: Duration(seconds: 2),
|
|
).show();
|
|
}
|
|
|
|
// 确认对话框
|
|
Future<bool?> showConfirmDialog(BuildContext context, String text) async {
|
|
final colors = Theme.of(context).colorScheme;
|
|
|
|
return showDialog<bool>(
|
|
context: context,
|
|
builder: (BuildContext context) {
|
|
return AlertDialog(
|
|
title: const Text('确认'),
|
|
backgroundColor: colors.surfaceContainer,
|
|
content: Text(text),
|
|
actions: [
|
|
TextButton(
|
|
onPressed: () => Navigator.of(context).pop(false),
|
|
child: Text(
|
|
'取消',
|
|
style: TextStyle(color: colors.secondary.withAlpha(150)),
|
|
),
|
|
),
|
|
TextButton(
|
|
onPressed: () => Navigator.of(context).pop(true),
|
|
child: Text('确认', style: TextStyle(color: colors.primary)),
|
|
),
|
|
],
|
|
);
|
|
},
|
|
);
|
|
}
|