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