import 'package:flutter/cupertino.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/app_settings/app_colors.dart'; class EmailNotifyTypeSelectAlert extends StatelessWidget { const EmailNotifyTypeSelectAlert({Key? key}) : super(key: key); @override Widget build(BuildContext context) { // 不需要实现,因为这个组件只是为了显示静态方法的对话框 throw UnimplementedError(); } static void showEmailNotifyTypeSelectAlert( BuildContext context, Function(int) onSelected) { bool isSystemEmailSelected = true; // 默认选中系统邮件 showCupertinoDialog( context: context, builder: (BuildContext context) { return StatefulBuilder( builder: (BuildContext context, StateSetter setState) { return CupertinoAlertDialog( title: const Text('类型选择'), content: Column( children: [ Padding( padding: EdgeInsets.only( left: 10.w, top: 8.h, bottom: 16.h, right: 10.w), child: Align( alignment: Alignment.centerLeft, child: Text('请选择要使用哪种类型', style: TextStyle(fontSize: 20.sp)), ), ), GestureDetector( onTap: () { setState(() { isSystemEmailSelected = true; }); }, child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ Image.asset( isSystemEmailSelected ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w, ), Padding( padding: EdgeInsets.only(left: 10.w), child: Text( '系统邮件(推荐)', style: TextStyle( fontSize: 22.sp, fontWeight: FontWeight.bold), ), ), ], ), ), Padding( padding: EdgeInsets.only(top: 6.h, left: 10.w, bottom: 10.h), child: Align( alignment: Alignment.centerLeft, child: Text( '邮件将从软件平台直接发给用户,请根据需要在软件那里购买邮件数量', style: TextStyle(fontSize: 18.sp), textAlign: TextAlign.left, ), ), ), GestureDetector( onTap: () { setState(() { isSystemEmailSelected = false; }); }, child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ Image.asset( !isSystemEmailSelected ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w, ), Padding( padding: EdgeInsets.only(left: 10.w), child: Text( '个人邮件', style: TextStyle( fontSize: 22.sp, fontWeight: FontWeight.bold), ), ), ], ), ), Padding( padding: EdgeInsets.only(top: 6.h, left: 10.w), child: Align( alignment: Alignment.centerLeft, child: Text( '邮件将从你的个人邮箱发给用户', style: TextStyle(fontSize: 18.sp), ), ), ), ], ), actions: [ CupertinoDialogAction( onPressed: () { final int selectedType = isSystemEmailSelected ? 1 : 2; // 1 代表系统邮件,2 代表个人邮件 onSelected(selectedType); Get.back(); }, child: Text( '确定'.tr, style: TextStyle(color: AppColors.mainColor), ), ), ], ); }); }, ); } }