urgent_contact_more_action_popup.dart 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_screenutil/flutter_screenutil.dart';
  4. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  5. import 'package:location/resource/assets.gen.dart';
  6. import 'package:location/resource/colors.gen.dart';
  7. import 'package:location/resource/string.gen.dart';
  8. class UrgentContactMoreActionPopup {
  9. static void show(BuildContext context, bool favor,
  10. {required VoidCallback onSetDefault, required VoidCallback onDelete}) {
  11. SmartDialog.showAttach(
  12. alignment: Alignment.bottomLeft,
  13. targetBuilder: (targetOffset, targetSize) =>
  14. targetOffset + Offset(-30.w, -10.w),
  15. animationType: SmartAnimationType.fade,
  16. maskColor: ColorName.transparent,
  17. targetContext: context,
  18. builder: (_) {
  19. return Container(
  20. decoration: BoxDecoration(
  21. image: DecorationImage(
  22. image: Assets.images.bgUrgentContactPopup.provider(),
  23. fit: BoxFit.fill,
  24. ),
  25. ),
  26. width: 140.w,
  27. height: 128.w,
  28. child: Column(
  29. mainAxisAlignment: MainAxisAlignment.center,
  30. children: [
  31. GestureDetector(
  32. behavior: HitTestBehavior.translucent,
  33. onTap: () {
  34. SmartDialog.dismiss();
  35. onSetDefault();
  36. },
  37. child: Container(
  38. padding: EdgeInsets.symmetric(vertical: 8.w),
  39. child: Text(
  40. favor
  41. ? StringName.urgentContactCancelDefault
  42. : StringName.urgentContactSetDefault,
  43. style: TextStyle(fontSize: 14.sp, color: ColorName.black),
  44. ),
  45. ),
  46. ),
  47. GestureDetector(
  48. behavior: HitTestBehavior.translucent,
  49. onTap: () {
  50. SmartDialog.dismiss();
  51. onDelete();
  52. },
  53. child: Container(
  54. padding: EdgeInsets.symmetric(vertical: 8.w),
  55. child: Text(
  56. StringName.urgentContactSetDelete,
  57. style: TextStyle(fontSize: 14.sp, color: ColorName.black),
  58. ),
  59. ),
  60. )
  61. ],
  62. ),
  63. );
  64. });
  65. }
  66. }