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 showConfirmDialog(BuildContext context, String text) async { final colors = Theme.of(context).colorScheme; return showDialog( 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)), ), ], ); }, ); }