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. backDismiss: false,
  13. clickMaskDismiss: false,
  14. builder: (_) {
  15. return _MemberUserCancelPayDialogWidget(
  16. payClick: payClick, cancelClick: cancelClick);
  17. });
  18. }
  19. static void dismiss() {
  20. SmartDialog.dismiss(tag: _tag);
  21. }
  22. }
  23. class _MemberUserCancelPayDialogWidget extends Dialog {
  24. final VoidCallback payClick;
  25. final VoidCallback cancelClick;
  26. const _MemberUserCancelPayDialogWidget(
  27. {required this.payClick, required this.cancelClick});
  28. @override
  29. Widget build(BuildContext context) {
  30. return Container(
  31. child: IntrinsicHeight(
  32. child: Column(
  33. children: [
  34. Stack(
  35. children: [
  36. AspectRatio(
  37. aspectRatio: 1110 / 1296,
  38. child: Assets.images.imgMemberUserCancelsContainer
  39. .image(width: 301.w)),
  40. Positioned(
  41. top: 360.w,
  42. left: 60.w,
  43. right: 60.w,
  44. child: GestureDetector(
  45. onTap: () {
  46. MemberUserCancelPayDialog.dismiss();
  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. }