member_retain_dialog.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. import 'package:location/utils/common_style.dart';
  7. class MemberRetainDialog {
  8. static final String _tag = 'MemberRetainDialog';
  9. static void show(
  10. {required VoidCallback payClick, required VoidCallback cancelClick}) {
  11. SmartDialog.show(
  12. tag: _tag,
  13. backDismiss: false,
  14. clickMaskDismiss: false,
  15. builder: (_) {
  16. return _MemberRetainDialogWidget(
  17. payClick: payClick, cancelClick: cancelClick);
  18. });
  19. }
  20. static void dismiss() {
  21. SmartDialog.dismiss(tag: _tag);
  22. }
  23. }
  24. class _MemberRetainDialogWidget extends Dialog {
  25. final VoidCallback payClick;
  26. final VoidCallback cancelClick;
  27. const _MemberRetainDialogWidget(
  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: 1080 / 1296,
  39. child: Assets.images.imgMemberRetainContainer
  40. .image(width: 301.w)),
  41. Positioned(
  42. top: 324.w,
  43. left: 73.w,
  44. right: 73.w,
  45. child: Container(
  46. height: 40.w,
  47. decoration: getPrimaryBtnDecoration(100.w),
  48. child: Center(
  49. child: Text(StringName.memberContinuePay,
  50. style:
  51. TextStyle(fontSize: 15.sp, color: Colors.white)),
  52. ),
  53. ),
  54. ),
  55. Positioned(
  56. bottom: 0,
  57. left: 0,
  58. right: 0,
  59. child: Center(
  60. child: GestureDetector(
  61. onTap: () {
  62. MemberRetainDialog.dismiss();
  63. cancelClick();
  64. },
  65. child: Assets.images.iconMemberRetainClose
  66. .image(width: 32.w, height: 32.w),
  67. ),
  68. ),
  69. )
  70. ],
  71. ),
  72. ],
  73. ),
  74. ),
  75. );
  76. }
  77. }