track_error_tips_dialog.dart 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import 'package:flutter/cupertino.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/colors.gen.dart';
  6. import 'package:location/resource/string.gen.dart';
  7. import 'package:location/utils/common_expand.dart';
  8. import '../utils/common_style.dart';
  9. class TrackErrorTipsDialog {
  10. static const String _tag = 'TrackErrorTipsDialog';
  11. static void show() {
  12. SmartDialog.show(
  13. tag: _tag,
  14. maskColor: ColorName.black80,
  15. builder: (_) => _TrackErrorTipsView(),
  16. );
  17. }
  18. static void dismiss() {
  19. SmartDialog.dismiss(tag: _tag);
  20. }
  21. }
  22. class _TrackErrorTipsView extends StatelessWidget {
  23. @override
  24. Widget build(BuildContext context) {
  25. return Container(
  26. width: 274.w,
  27. decoration: BoxDecoration(
  28. borderRadius: BorderRadius.circular(16.r),
  29. border: Border.all(
  30. color: ColorName.white,
  31. width: 3.w,
  32. ),
  33. gradient: LinearGradient(colors: [
  34. '#E4E4FF'.color,
  35. ColorName.white,
  36. ], stops: const [
  37. 0.0,
  38. 0.2
  39. ], begin: Alignment.topCenter, end: Alignment.bottomCenter)),
  40. child: Stack(
  41. children: [
  42. Assets.images.bgDialogTrackError.image(width: double.infinity),
  43. Container(
  44. width: double.infinity,
  45. padding: EdgeInsets.symmetric(horizontal: 17.w),
  46. child: IntrinsicHeight(
  47. child: Column(
  48. crossAxisAlignment: CrossAxisAlignment.start,
  49. children: [
  50. SizedBox(height: 24.w),
  51. Align(
  52. alignment: Alignment.center,
  53. child: Text(
  54. StringName.dialogTrackErrorTitle,
  55. style: TextStyle(
  56. fontSize: 17.sp,
  57. color: '#333333'.color,
  58. fontWeight: FontWeight.bold),
  59. ),
  60. ),
  61. SizedBox(height: 35.w),
  62. buildTip(StringName.dialogTrackErrorTip1),
  63. buildTipDesc(StringName.dialogTrackErrorTip1Desc),
  64. buildTip(StringName.dialogTrackErrorTip2),
  65. buildTipDesc(StringName.dialogTrackErrorTip2Desc),
  66. buildTip(StringName.dialogTrackErrorTip3),
  67. buildTipDesc(StringName.dialogTrackErrorTip3Desc),
  68. SizedBox(height: 7.w),
  69. GestureDetector(
  70. onTap: () {
  71. TrackErrorTipsDialog.dismiss();
  72. },
  73. child: Container(
  74. decoration: getPrimaryBtnDecoration(100.r),
  75. width: double.infinity,
  76. height: 40.w,
  77. child: Center(
  78. child: Text(StringName.dialogTrackErrorBtnTxt,
  79. style: TextStyle(
  80. fontSize: 14.sp, color: ColorName.white)))),
  81. ),
  82. SizedBox(height: 20.w),
  83. ],
  84. ),
  85. ),
  86. )
  87. ],
  88. ),
  89. );
  90. }
  91. Widget buildTip(String title) {
  92. return Container(
  93. margin: EdgeInsets.only(bottom: 6.w),
  94. child: Text(title,
  95. style: TextStyle(
  96. fontSize: 13.sp,
  97. color: '#404040'.color,
  98. fontWeight: FontWeight.bold)),
  99. );
  100. }
  101. Widget buildTipDesc(String desc) {
  102. return Container(
  103. margin: EdgeInsets.only(bottom: 24.w),
  104. child:
  105. Text(desc, style: TextStyle(fontSize: 12.sp, color: '#666666'.color)),
  106. );
  107. }
  108. }