member_evaluation_pop_up_dialog.dart 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_screenutil/flutter_screenutil.dart';
  3. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  4. import 'package:location/resource/assets.gen.dart';
  5. class MemberEvaluationPopUpDialog {
  6. static final String _tag = 'MemberEvaluationPopUpDialog';
  7. static void show(
  8. {required VoidCallback payClick, required VoidCallback cancelClick}) {
  9. SmartDialog.show(
  10. tag: _tag,
  11. backDismiss: false,
  12. clickMaskDismiss: false,
  13. builder: (_) {
  14. return _MemberEvaluationPopUpDialogWidget(
  15. payClick: payClick, cancelClick: cancelClick);
  16. });
  17. }
  18. static void dismiss() {
  19. SmartDialog.dismiss(tag: _tag);
  20. }
  21. }
  22. class _MemberEvaluationPopUpDialogWidget extends Dialog {
  23. final VoidCallback payClick;
  24. final VoidCallback cancelClick;
  25. const _MemberEvaluationPopUpDialogWidget(
  26. {required this.payClick, required this.cancelClick});
  27. @override
  28. Widget build(BuildContext context) {
  29. return Container(
  30. child: IntrinsicHeight(
  31. child: Column(
  32. children: [
  33. Stack(
  34. children: [
  35. AspectRatio(
  36. aspectRatio: 1110 / 1296,
  37. child: Assets.images.imgMemberUserCancelsContainer
  38. .image(width: 301.w)),
  39. Positioned(
  40. top: 360.w,
  41. left: 60.w,
  42. right: 60.w,
  43. child: GestureDetector(
  44. onTap: () {
  45. MemberEvaluationPopUpDialog.dismiss();
  46. payClick();
  47. },
  48. child: Container(
  49. height: 40.w,
  50. decoration: BoxDecoration(
  51. gradient: LinearGradient(
  52. begin: Alignment.centerLeft, // 90度相当于从左到右
  53. end: Alignment.centerRight,
  54. colors: [
  55. Color(0xFF7B7DFF), // #7B7DFF
  56. Color(0xFF6365FF), // #6365FF
  57. ],
  58. stops: [0.0, 1.0],
  59. // 从0%到100%
  60. ),
  61. borderRadius: BorderRadius.circular(40.w / 2.0),
  62. ),
  63. //getPrimaryBtnDecoration(100.w),
  64. child: Center(
  65. child: Text("立即领取",
  66. style: TextStyle(
  67. fontSize: 15.sp, color: Colors.white)),
  68. ),
  69. ),
  70. ),
  71. ),
  72. ],
  73. ),
  74. SizedBox(height: 24.w,),
  75. Center(
  76. child: GestureDetector(
  77. onTap: () {
  78. MemberEvaluationPopUpDialog.dismiss();
  79. cancelClick();
  80. },
  81. child: Assets.images.iconMemberRetainClose
  82. .image(width: 32.w, height: 32.w),
  83. ),
  84. )
  85. ],
  86. ),
  87. ),
  88. );
  89. }
  90. }