dialog_start_warn.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:trackoffical_app/generated/assets.dart';
  4. import 'package:trackoffical_app/screen.dart';
  5. import 'package:trackoffical_app/service/app.dart';
  6. import 'package:trackoffical_app/service/mock.dart';
  7. import 'package:trackoffical_app/view/ingame/dialog/dialog_base.dart';
  8. import '../../../styles/theme.dart';
  9. import 'dialog_button.dart';
  10. Widget _elem(String iconSrc, String title) {
  11. final style = TextStyle(
  12. fontSize: 45.8.rpx,
  13. fontWeight: FontWeight.w500,
  14. color: const Color(0xff333333));
  15. return Container(
  16. decoration: BoxDecoration(
  17. color: Colors.white, borderRadius: BorderRadius.circular(1.2.wp)),
  18. padding: EdgeInsets.only(left: 2.55.wp, top: 1.78.wp, bottom: 1.78.wp),
  19. margin: EdgeInsets.only(bottom: 3.81.wp),
  20. child: Row(
  21. children: [
  22. Image.asset(iconSrc, height: 9.16.wp),
  23. SizedBox(width: 9.5.rpx),
  24. Expanded(
  25. child: Text(
  26. title,
  27. style: style.copyWith(fontSize: 34.35.rpx),
  28. )),
  29. ],
  30. ));
  31. }
  32. class DialogStartWarn extends StatefulWidget {
  33. const DialogStartWarn({super.key});
  34. @override
  35. State<StatefulWidget> createState() {
  36. return DialogStartWarnState();
  37. }
  38. }
  39. class DialogStartWarnState extends State<DialogStartWarn> {
  40. @override
  41. Widget build(BuildContext context) {
  42. const title = '为了获得更好的体验';
  43. const titleColor = Color(0xFFce0000);
  44. return dialogTitle(
  45. title,
  46. titleColor,
  47. Column(children: [
  48. _elem(Assets.imagesIcWarnSound, '调大手机音量'),
  49. _elem(Assets.imagesIcWarnVibrate, '开启手机震动'),
  50. _elem(Assets.imagesIcWarnBrightness, '强光下将屏幕调至最亮'),
  51. GestureDetector(
  52. onTap: () {
  53. setState(() {
  54. App.to.userProfile.isEnableInGameStartWarn.val =
  55. !App.to.userProfile.isEnableInGameStartWarn.val;
  56. });
  57. },
  58. child: Row(children: [
  59. Container(
  60. width: 10.36.wp,
  61. height: 10.36.wp,
  62. padding: EdgeInsets.all(2.0.wp),
  63. child: Stack(
  64. children: [
  65. Image.asset(Assets.imagesIcSelectRect),
  66. !App.to.userProfile.isEnableInGameStartWarn.val
  67. ? Image.asset(Assets.imagesIcSelectRectSelected)
  68. : const SizedBox()
  69. ],
  70. )),
  71. const Text('下次不再提醒'),
  72. ])),
  73. SizedBox(height: 4.0.wp),
  74. dialogButton('确定', () {
  75. Get.back();
  76. })
  77. ]));
  78. }
  79. }
  80. Future<void> dialogStartWarn() async{
  81. await Get.dialog(const DialogStartWarn(), barrierDismissible: true);
  82. return;
  83. }
  84. class _Empty extends StatelessWidget {
  85. @override
  86. Widget build(BuildContext context) {
  87. SizeFit.screenInit(context);
  88. return Scaffold(
  89. floatingActionButton: FloatingActionButton(onPressed: () {
  90. dialogStartWarn();
  91. }),
  92. );
  93. }
  94. }
  95. void main() async {
  96. Mock.initServices();
  97. runApp(GetMaterialApp(theme: appThemeData(), home: _Empty()));
  98. }