Commit f29687b2fe98680efbe9ac7805cc6e830ef1f8d4
1 parent
18699a34
修复iOS偶现按钮消失问题,练习页面返回按钮尺寸和标题位置
Showing
5 changed files
with
309 additions
and
292 deletions
ios/Runner.xcodeproj/project.pbxproj
@@ -2327,7 +2327,7 @@ | @@ -2327,7 +2327,7 @@ | ||
2327 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; | 2327 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; |
2328 | CODE_SIGN_IDENTITY = "Apple Development"; | 2328 | CODE_SIGN_IDENTITY = "Apple Development"; |
2329 | CODE_SIGN_STYLE = Automatic; | 2329 | CODE_SIGN_STYLE = Automatic; |
2330 | - CURRENT_PROJECT_VERSION = 11; | 2330 | + CURRENT_PROJECT_VERSION = 12; |
2331 | DEVELOPMENT_TEAM = T8P9KW8GWH; | 2331 | DEVELOPMENT_TEAM = T8P9KW8GWH; |
2332 | ENABLE_BITCODE = NO; | 2332 | ENABLE_BITCODE = NO; |
2333 | INFOPLIST_FILE = Runner/Info.plist; | 2333 | INFOPLIST_FILE = Runner/Info.plist; |
@@ -2671,7 +2671,7 @@ | @@ -2671,7 +2671,7 @@ | ||
2671 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; | 2671 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; |
2672 | CODE_SIGN_IDENTITY = "Apple Development"; | 2672 | CODE_SIGN_IDENTITY = "Apple Development"; |
2673 | CODE_SIGN_STYLE = Automatic; | 2673 | CODE_SIGN_STYLE = Automatic; |
2674 | - CURRENT_PROJECT_VERSION = 11; | 2674 | + CURRENT_PROJECT_VERSION = 12; |
2675 | DEVELOPMENT_TEAM = T8P9KW8GWH; | 2675 | DEVELOPMENT_TEAM = T8P9KW8GWH; |
2676 | ENABLE_BITCODE = NO; | 2676 | ENABLE_BITCODE = NO; |
2677 | HEADER_SEARCH_PATHS = ( | 2677 | HEADER_SEARCH_PATHS = ( |
@@ -2876,7 +2876,7 @@ | @@ -2876,7 +2876,7 @@ | ||
2876 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; | 2876 | CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; |
2877 | CODE_SIGN_IDENTITY = "Apple Development"; | 2877 | CODE_SIGN_IDENTITY = "Apple Development"; |
2878 | CODE_SIGN_STYLE = Automatic; | 2878 | CODE_SIGN_STYLE = Automatic; |
2879 | - CURRENT_PROJECT_VERSION = 11; | 2879 | + CURRENT_PROJECT_VERSION = 12; |
2880 | DEVELOPMENT_TEAM = T8P9KW8GWH; | 2880 | DEVELOPMENT_TEAM = T8P9KW8GWH; |
2881 | ENABLE_BITCODE = NO; | 2881 | ENABLE_BITCODE = NO; |
2882 | INFOPLIST_FILE = Runner/Info.plist; | 2882 | INFOPLIST_FILE = Runner/Info.plist; |
ios/Runner/Info.plist
@@ -92,16 +92,16 @@ | @@ -92,16 +92,16 @@ | ||
92 | <true/> | 92 | <true/> |
93 | <key>UISupportedInterfaceOrientations</key> | 93 | <key>UISupportedInterfaceOrientations</key> |
94 | <array> | 94 | <array> |
95 | - <string>UIInterfaceOrientationPortrait</string> | ||
96 | <string>UIInterfaceOrientationLandscapeLeft</string> | 95 | <string>UIInterfaceOrientationLandscapeLeft</string> |
97 | <string>UIInterfaceOrientationLandscapeRight</string> | 96 | <string>UIInterfaceOrientationLandscapeRight</string> |
97 | + <string>UIInterfaceOrientationPortrait</string> | ||
98 | </array> | 98 | </array> |
99 | <key>UISupportedInterfaceOrientations~ipad</key> | 99 | <key>UISupportedInterfaceOrientations~ipad</key> |
100 | <array> | 100 | <array> |
101 | - <string>UIInterfaceOrientationPortrait</string> | ||
102 | - <string>UIInterfaceOrientationPortraitUpsideDown</string> | ||
103 | <string>UIInterfaceOrientationLandscapeLeft</string> | 101 | <string>UIInterfaceOrientationLandscapeLeft</string> |
104 | <string>UIInterfaceOrientationLandscapeRight</string> | 102 | <string>UIInterfaceOrientationLandscapeRight</string> |
103 | + <string>UIInterfaceOrientationPortrait</string> | ||
104 | + <string>UIInterfaceOrientationPortraitUpsideDown</string> | ||
105 | </array> | 105 | </array> |
106 | <key>UIViewControllerBasedStatusBarAppearance</key> | 106 | <key>UIViewControllerBasedStatusBarAppearance</key> |
107 | <false/> | 107 | <false/> |
ios/Runner/Wowgame/WowGameClasses/WowGameCocosManager.mm
@@ -48,6 +48,7 @@ static CocosAppDelegate cocosAppDelegate; | @@ -48,6 +48,7 @@ static CocosAppDelegate cocosAppDelegate; | ||
48 | } | 48 | } |
49 | 49 | ||
50 | - (void)exitGame { | 50 | - (void)exitGame { |
51 | + | ||
51 | [self.gameViewController dismissViewControllerAnimated:YES completion:nil]; | 52 | [self.gameViewController dismissViewControllerAnimated:YES completion:nil]; |
52 | } | 53 | } |
53 | 54 | ||
@@ -102,6 +103,7 @@ static DMProgressHUD *hud; | @@ -102,6 +103,7 @@ static DMProgressHUD *hud; | ||
102 | } | 103 | } |
103 | 104 | ||
104 | -(void)startGameWithID:(NSInteger)gameid { | 105 | -(void)startGameWithID:(NSInteger)gameid { |
106 | + [self clearData]; | ||
105 | cocos2d::Director::getInstance()->getScheduler()->performFunctionInCocosThread([=] { | 107 | cocos2d::Director::getInstance()->getScheduler()->performFunctionInCocosThread([=] { |
106 | // CCLOG("start gameid---> %d ", gameid); | 108 | // CCLOG("start gameid---> %d ", gameid); |
107 | cocos2d::EventCustom evtEnter("start_gameid"); | 109 | cocos2d::EventCustom evtEnter("start_gameid"); |
@@ -117,6 +119,16 @@ static DMProgressHUD *hud; | @@ -117,6 +119,16 @@ static DMProgressHUD *hud; | ||
117 | } | 119 | } |
118 | 120 | ||
119 | 121 | ||
122 | +- (void)clearData | ||
123 | +{ | ||
124 | + cocos2d::SpriteFrameCache::getInstance()->removeSpriteFrames(); | ||
125 | + cocos2d::Director::getInstance()->getTextureCache()->removeAllTextures(); | ||
126 | + //清理搜索路径 | ||
127 | + std::vector<std::string> searchPathArray; | ||
128 | + searchPathArray.push_back("res"); | ||
129 | + cocos2d::FileUtils::getInstance()->setSearchPaths(searchPathArray); | ||
130 | +} | ||
131 | + | ||
120 | - (void)detoryCocosEnvironment { | 132 | - (void)detoryCocosEnvironment { |
121 | 133 | ||
122 | } | 134 | } |
lib/pages/practice/topic_picture_page.dart
@@ -14,7 +14,7 @@ import '../../common/widgets/throttledGesture_gesture_detector.dart'; | @@ -14,7 +14,7 @@ import '../../common/widgets/throttledGesture_gesture_detector.dart'; | ||
14 | import 'bloc/topic_picture_bloc.dart'; | 14 | import 'bloc/topic_picture_bloc.dart'; |
15 | import 'widgets/practice_header_widget.dart'; | 15 | import 'widgets/practice_header_widget.dart'; |
16 | 16 | ||
17 | -class TopicPicturePage extends StatelessWidget { | 17 | +class TopicPicturePage extends StatelessWidget { |
18 | const TopicPicturePage({super.key, this.courseLessonId}); | 18 | const TopicPicturePage({super.key, this.courseLessonId}); |
19 | 19 | ||
20 | final String? courseLessonId; | 20 | final String? courseLessonId; |
@@ -23,20 +23,18 @@ class TopicPicturePage extends StatelessWidget { | @@ -23,20 +23,18 @@ class TopicPicturePage extends StatelessWidget { | ||
23 | Widget build(BuildContext context) { | 23 | Widget build(BuildContext context) { |
24 | return BlocProvider( | 24 | return BlocProvider( |
25 | create: (context) => TopicPictureBloc( | 25 | create: (context) => TopicPictureBloc( |
26 | - context, | ||
27 | - PageController(), | ||
28 | - courseLessonId??'', | 26 | + context, |
27 | + PageController(), | ||
28 | + courseLessonId ?? '', | ||
29 | ) | 29 | ) |
30 | ..add(InitBlocEvent()) | 30 | ..add(InitBlocEvent()) |
31 | ..add(RequestDataEvent()) | 31 | ..add(RequestDataEvent()) |
32 | - ..add(XSVoiceInitEvent( | ||
33 | - { | ||
34 | - 'appKey':AppConsts.xsAppKey, | ||
35 | - 'service':AppConsts.xsAppService, | ||
36 | - 'secretKey':AppConsts.xsAppSecretKey, | ||
37 | - 'userId':UserUtil.getUser()!.id.toString(), | ||
38 | - } | ||
39 | - )), | 32 | + ..add(XSVoiceInitEvent({ |
33 | + 'appKey': AppConsts.xsAppKey, | ||
34 | + 'service': AppConsts.xsAppService, | ||
35 | + 'secretKey': AppConsts.xsAppSecretKey, | ||
36 | + 'userId': UserUtil.getUser()!.id.toString(), | ||
37 | + })), | ||
40 | child: _TopicPicturePage(), | 38 | child: _TopicPicturePage(), |
41 | ); | 39 | ); |
42 | } | 40 | } |
@@ -45,21 +43,20 @@ class TopicPicturePage extends StatelessWidget { | @@ -45,21 +43,20 @@ class TopicPicturePage extends StatelessWidget { | ||
45 | class _TopicPicturePage extends StatelessWidget { | 43 | class _TopicPicturePage extends StatelessWidget { |
46 | @override | 44 | @override |
47 | Widget build(BuildContext context) { | 45 | Widget build(BuildContext context) { |
48 | - return BlocListener<TopicPictureBloc,TopicPictureState>( | ||
49 | - listener: (context, state){ | 46 | + return BlocListener<TopicPictureBloc, TopicPictureState>( |
47 | + listener: (context, state) { | ||
50 | if (state is RequestDataState) { | 48 | if (state is RequestDataState) { |
51 | context.read<TopicPictureBloc>().add(CurrentPageIndexChangeEvent(0)); | 49 | context.read<TopicPictureBloc>().add(CurrentPageIndexChangeEvent(0)); |
52 | } | 50 | } |
53 | - if (state is XSVoiceTestState) { | ||
54 | - | ||
55 | - } | 51 | + if (state is XSVoiceTestState) {} |
56 | }, | 52 | }, |
57 | child: _topicPictureView(), | 53 | child: _topicPictureView(), |
58 | ); | 54 | ); |
59 | } | 55 | } |
60 | 56 | ||
61 | - Widget _topicPictureView() => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
62 | - builder: (context,state){ | 57 | + Widget _topicPictureView() => |
58 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
59 | + builder: (context, state) { | ||
63 | final bloc = BlocProvider.of<TopicPictureBloc>(context); | 60 | final bloc = BlocProvider.of<TopicPictureBloc>(context); |
64 | return Container( | 61 | return Container( |
65 | color: Colors.white, | 62 | color: Colors.white, |
@@ -70,14 +67,13 @@ class _TopicPicturePage extends StatelessWidget { | @@ -70,14 +67,13 @@ class _TopicPicturePage extends StatelessWidget { | ||
70 | PracticeHeaderWidget( | 67 | PracticeHeaderWidget( |
71 | title: '${bloc.currentPage}/${bloc.entity?.topics?.length}', | 68 | title: '${bloc.currentPage}/${bloc.entity?.topics?.length}', |
72 | onTap: () { | 69 | onTap: () { |
73 | - popPage( | ||
74 | - data:{ | ||
75 | - 'currentStep':bloc.currentPage, | ||
76 | - 'courseLessonId':bloc.courseLessonId, | ||
77 | - 'isCompleted': bloc.isLastPage(), | ||
78 | - }); | 70 | + popPage(data: { |
71 | + 'currentStep': bloc.currentPage, | ||
72 | + 'courseLessonId': bloc.courseLessonId, | ||
73 | + 'isCompleted': bloc.isLastPage(), | ||
74 | + }); | ||
79 | // Navigator.pop(context); | 75 | // Navigator.pop(context); |
80 | - }, | 76 | + }, |
81 | ), | 77 | ), |
82 | Expanded( | 78 | Expanded( |
83 | child: PageView.builder( | 79 | child: PageView.builder( |
@@ -87,17 +83,27 @@ class _TopicPicturePage extends StatelessWidget { | @@ -87,17 +83,27 @@ class _TopicPicturePage extends StatelessWidget { | ||
87 | onPageChanged: (int index) { | 83 | onPageChanged: (int index) { |
88 | bloc.add(CurrentPageIndexChangeEvent(index)); | 84 | bloc.add(CurrentPageIndexChangeEvent(index)); |
89 | }, | 85 | }, |
90 | - itemBuilder: (BuildContext context,int index){ | ||
91 | - CourseProcessTopics? topics = bloc.entity?.topics![index]; | ||
92 | - if (topics?.type == TopicType.audioImageSelect.value) {//听音选图 | 86 | + itemBuilder: (BuildContext context, int index) { |
87 | + CourseProcessTopics? topics = | ||
88 | + bloc.entity?.topics![index]; | ||
89 | + if (topics?.type == | ||
90 | + TopicType.audioImageSelect.value) { | ||
91 | + //听音选图 | ||
93 | return _pageViewVoicePictureItemWidget(topics); | 92 | return _pageViewVoicePictureItemWidget(topics); |
94 | - } else if (topics?.type == TopicType.audioCharSelect.value) {//听音选字 | 93 | + } else if (topics?.type == |
94 | + TopicType.audioCharSelect.value) { | ||
95 | + //听音选字 | ||
95 | return _pageViewVoiceWordItemWidget(topics); | 96 | return _pageViewVoiceWordItemWidget(topics); |
96 | - } else if (topics?.type == TopicType.questionCharSelect.value) {//看题选字 | 97 | + } else if (topics?.type == |
98 | + TopicType.questionCharSelect.value) { | ||
99 | + //看题选字 | ||
97 | return _pageViewWordItemWidget(topics); | 100 | return _pageViewWordItemWidget(topics); |
98 | - } else if (topics?.type == TopicType.questionImageSelect.value) {//看题选图 | 101 | + } else if (topics?.type == |
102 | + TopicType.questionImageSelect.value) { | ||
103 | + //看题选图 | ||
99 | return _pageViewItemWidget(topics); | 104 | return _pageViewItemWidget(topics); |
100 | - } else {//语音问答 | 105 | + } else { |
106 | + //语音问答 | ||
101 | return _voiceAnswerItem(topics); | 107 | return _voiceAnswerItem(topics); |
102 | } | 108 | } |
103 | }), | 109 | }), |
@@ -108,37 +114,34 @@ class _TopicPicturePage extends StatelessWidget { | @@ -108,37 +114,34 @@ class _TopicPicturePage extends StatelessWidget { | ||
108 | left: 0, | 114 | left: 0, |
109 | right: 0, | 115 | right: 0, |
110 | bottom: 0, | 116 | bottom: 0, |
111 | - child: Image.asset('bottom_grass'.assetPng) | ||
112 | - ) | 117 | + child: Image.asset('bottom_grass'.assetPng)) |
113 | ], | 118 | ], |
114 | ), | 119 | ), |
115 | ); | 120 | ); |
116 | }); | 121 | }); |
117 | 122 | ||
118 | ///看题选图 | 123 | ///看题选图 |
119 | - Widget _pageViewItemWidget(CourseProcessTopics? topics) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
120 | - builder: (context, state){ | 124 | + Widget _pageViewItemWidget(CourseProcessTopics? topics) => |
125 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
126 | + builder: (context, state) { | ||
121 | return SafeArea( | 127 | return SafeArea( |
122 | child: Column( | 128 | child: Column( |
123 | children: [ | 129 | children: [ |
124 | - Text( | ||
125 | - topics?.word??'', | 130 | + Text(topics?.word ?? '', |
126 | softWrap: true, | 131 | softWrap: true, |
127 | style: TextStyle( | 132 | style: TextStyle( |
128 | - fontSize: 21.sp, | ||
129 | - color: const Color(0xFF333333) | ||
130 | - ) | ||
131 | - ), | 133 | + fontSize: 21.sp, color: const Color(0xFF333333))), |
132 | 26.verticalSpace, | 134 | 26.verticalSpace, |
133 | SizedBox( | 135 | SizedBox( |
134 | height: 143.h, | 136 | height: 143.h, |
135 | - width: 143.w * (topics?.topicAnswerList?.length??0), | 137 | + width: 143.w * (topics?.topicAnswerList?.length ?? 0), |
136 | child: ListView.builder( | 138 | child: ListView.builder( |
137 | scrollDirection: Axis.horizontal, | 139 | scrollDirection: Axis.horizontal, |
138 | physics: const NeverScrollableScrollPhysics(), | 140 | physics: const NeverScrollableScrollPhysics(), |
139 | - itemCount: topics?.topicAnswerList?.length??0, | ||
140 | - itemBuilder: (context,index){ | ||
141 | - return _decodeImageWidget(index,topics?.topicAnswerList?[index]); | 141 | + itemCount: topics?.topicAnswerList?.length ?? 0, |
142 | + itemBuilder: (context, index) { | ||
143 | + return _decodeImageWidget( | ||
144 | + index, topics?.topicAnswerList?[index]); | ||
142 | }), | 145 | }), |
143 | ), | 146 | ), |
144 | ], | 147 | ], |
@@ -146,65 +149,63 @@ class _TopicPicturePage extends StatelessWidget { | @@ -146,65 +149,63 @@ class _TopicPicturePage extends StatelessWidget { | ||
146 | ); | 149 | ); |
147 | }); | 150 | }); |
148 | 151 | ||
149 | - Widget _decodeImageWidget(int index,CourseProcessTopicsTopicAnswerList? answerLis) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
150 | - buildWhen: (_, s) => s is SelectItemChangeState, | ||
151 | - builder: (context,state){ | ||
152 | - final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
153 | - return Container( | ||
154 | - padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
155 | - child: GestureDetector( | ||
156 | - onTap: () => bloc.add(SelectItemEvent(index)), | ||
157 | - child: Container( | ||
158 | - padding: const EdgeInsets.all(4.5), | ||
159 | - decoration: BoxDecoration( | ||
160 | - color: bloc.selectItem == index?const Color(0xFF00B6F1):Colors.white, | ||
161 | - borderRadius: BorderRadius.circular(15), | ||
162 | - ), | ||
163 | - height: 143.h, | ||
164 | - width: 143.w, | ||
165 | - child: Container( | ||
166 | - decoration: BoxDecoration( | ||
167 | - color: Colors.white, | 152 | + Widget _decodeImageWidget( |
153 | + int index, CourseProcessTopicsTopicAnswerList? answerLis) => | ||
154 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
155 | + buildWhen: (_, s) => s is SelectItemChangeState, | ||
156 | + builder: (context, state) { | ||
157 | + final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
158 | + return Container( | ||
159 | + padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
160 | + child: GestureDetector( | ||
161 | + onTap: () => bloc.add(SelectItemEvent(index)), | ||
162 | + child: Container( | ||
163 | + padding: const EdgeInsets.all(4.5), | ||
164 | + decoration: BoxDecoration( | ||
165 | + color: bloc.selectItem == index | ||
166 | + ? const Color(0xFF00B6F1) | ||
167 | + : Colors.white, | ||
168 | borderRadius: BorderRadius.circular(15), | 168 | borderRadius: BorderRadius.circular(15), |
169 | - border: Border.all( | ||
170 | - width: 1.0, | ||
171 | - color: const Color(0xFF140C10) | ||
172 | - ), | ||
173 | - image: DecorationImage( | ||
174 | - fit: BoxFit.fitWidth, | ||
175 | - image: NetworkImage(answerLis?.picUrl??'') | ||
176 | - ) | 169 | + ), |
170 | + height: 143.h, | ||
171 | + width: 143.w, | ||
172 | + child: Container( | ||
173 | + decoration: BoxDecoration( | ||
174 | + color: Colors.white, | ||
175 | + borderRadius: BorderRadius.circular(15), | ||
176 | + border: Border.all( | ||
177 | + width: 1.0, color: const Color(0xFF140C10)), | ||
178 | + image: DecorationImage( | ||
179 | + fit: BoxFit.fitWidth, | ||
180 | + image: NetworkImage(answerLis?.picUrl ?? ''))), | ||
181 | + ), | ||
177 | ), | 182 | ), |
178 | ), | 183 | ), |
179 | - ), | ||
180 | - ), | ||
181 | - ); | ||
182 | - }); | 184 | + ); |
185 | + }); | ||
183 | 186 | ||
184 | ///看题选字 | 187 | ///看题选字 |
185 | - Widget _pageViewWordItemWidget(CourseProcessTopics? topics) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
186 | - builder: (context, state){ | 188 | + Widget _pageViewWordItemWidget(CourseProcessTopics? topics) => |
189 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
190 | + builder: (context, state) { | ||
187 | return SafeArea( | 191 | return SafeArea( |
188 | child: Column( | 192 | child: Column( |
189 | children: [ | 193 | children: [ |
190 | - Text( | ||
191 | - topics?.word??'', | 194 | + Text(topics?.word ?? '', |
192 | softWrap: true, | 195 | softWrap: true, |
193 | style: TextStyle( | 196 | style: TextStyle( |
194 | - fontSize: 21.sp, | ||
195 | - color: const Color(0xFF333333) | ||
196 | - ) | ||
197 | - ), | 197 | + fontSize: 21.sp, color: const Color(0xFF333333))), |
198 | 26.verticalSpace, | 198 | 26.verticalSpace, |
199 | SizedBox( | 199 | SizedBox( |
200 | height: 143.h, | 200 | height: 143.h, |
201 | - width: 143.w * (topics?.topicAnswerList?.length??0), | 201 | + width: 143.w * (topics?.topicAnswerList?.length ?? 0), |
202 | child: ListView.builder( | 202 | child: ListView.builder( |
203 | scrollDirection: Axis.horizontal, | 203 | scrollDirection: Axis.horizontal, |
204 | - itemCount: topics?.topicAnswerList?.length??0, | 204 | + itemCount: topics?.topicAnswerList?.length ?? 0, |
205 | physics: const NeverScrollableScrollPhysics(), | 205 | physics: const NeverScrollableScrollPhysics(), |
206 | - itemBuilder: (context,index){ | ||
207 | - return _decodeWordWidget(index,topics?.topicAnswerList?[index]); | 206 | + itemBuilder: (context, index) { |
207 | + return _decodeWordWidget( | ||
208 | + index, topics?.topicAnswerList?[index]); | ||
208 | }), | 209 | }), |
209 | ), | 210 | ), |
210 | ], | 211 | ], |
@@ -212,65 +213,64 @@ class _TopicPicturePage extends StatelessWidget { | @@ -212,65 +213,64 @@ class _TopicPicturePage extends StatelessWidget { | ||
212 | ); | 213 | ); |
213 | }); | 214 | }); |
214 | 215 | ||
215 | - Widget _decodeWordWidget(int index,CourseProcessTopicsTopicAnswerList? answerLis) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
216 | - buildWhen: (_, s) => s is SelectItemChangeState, | ||
217 | - builder: (context,state){ | ||
218 | - final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
219 | - return Container( | ||
220 | - padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
221 | - child: GestureDetector( | ||
222 | - onTap: () => bloc.add(SelectItemEvent(index)), | ||
223 | - child: Container( | ||
224 | - width: 143.w, | ||
225 | - height: 143.h, | ||
226 | - padding: EdgeInsets.only(left: 13.w,right: 13.w,top: 13.h,bottom: 13.h), | ||
227 | - decoration: BoxDecoration( | ||
228 | - color: Colors.white, | ||
229 | - borderRadius: BorderRadius.circular(15), | ||
230 | - border: Border.all( | ||
231 | - width: 1.0, | ||
232 | - color: const Color(0xFF140C10) | ||
233 | - ), | ||
234 | - ), | ||
235 | - child: Column( | ||
236 | - mainAxisAlignment: MainAxisAlignment.end, | ||
237 | - children: [ | ||
238 | - Expanded( | ||
239 | - child: Container( | ||
240 | - alignment: Alignment.center, | ||
241 | - child: Text( | ||
242 | - answerLis?.word??'', | ||
243 | - style: TextStyle( | ||
244 | - fontSize: 20.sp, | ||
245 | - color: const Color(0xFF333333) | ||
246 | - ) | ||
247 | - ), | ||
248 | - ), | 216 | + Widget _decodeWordWidget( |
217 | + int index, CourseProcessTopicsTopicAnswerList? answerLis) => | ||
218 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
219 | + buildWhen: (_, s) => s is SelectItemChangeState, | ||
220 | + builder: (context, state) { | ||
221 | + final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
222 | + return Container( | ||
223 | + padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
224 | + child: GestureDetector( | ||
225 | + onTap: () => bloc.add(SelectItemEvent(index)), | ||
226 | + child: Container( | ||
227 | + width: 143.w, | ||
228 | + height: 143.h, | ||
229 | + padding: EdgeInsets.only( | ||
230 | + left: 13.w, right: 13.w, top: 13.h, bottom: 13.h), | ||
231 | + decoration: BoxDecoration( | ||
232 | + color: Colors.white, | ||
233 | + borderRadius: BorderRadius.circular(15), | ||
234 | + border: | ||
235 | + Border.all(width: 1.0, color: const Color(0xFF140C10)), | ||
249 | ), | 236 | ), |
250 | - Container( | ||
251 | - height: 30.h, | ||
252 | - width: double.infinity, | ||
253 | - decoration: BoxDecoration( | ||
254 | - color: bloc.selectItem == index?const Color(0xFF00B6F1):Colors.white, | ||
255 | - borderRadius: BorderRadius.circular(15.r), | ||
256 | - border: Border.all( | ||
257 | - width: 1.5, | ||
258 | - color: const Color(0xFF140C10) | 237 | + child: Column( |
238 | + mainAxisAlignment: MainAxisAlignment.end, | ||
239 | + children: [ | ||
240 | + Expanded( | ||
241 | + child: Container( | ||
242 | + alignment: Alignment.center, | ||
243 | + child: Text(answerLis?.word ?? '', | ||
244 | + style: TextStyle( | ||
245 | + fontSize: 20.sp, | ||
246 | + color: const Color(0xFF333333))), | ||
247 | + ), | ||
259 | ), | 248 | ), |
260 | - ), | ||
261 | - alignment: Alignment.center, | ||
262 | - child: Image.asset('choose'.assetPng), | ||
263 | - ) | ||
264 | - ], | 249 | + Container( |
250 | + height: 30.h, | ||
251 | + width: double.infinity, | ||
252 | + decoration: BoxDecoration( | ||
253 | + color: bloc.selectItem == index | ||
254 | + ? const Color(0xFF00B6F1) | ||
255 | + : Colors.white, | ||
256 | + borderRadius: BorderRadius.circular(15.r), | ||
257 | + border: Border.all( | ||
258 | + width: 1.5, color: const Color(0xFF140C10)), | ||
259 | + ), | ||
260 | + alignment: Alignment.center, | ||
261 | + child: Image.asset('choose'.assetPng), | ||
262 | + ) | ||
263 | + ], | ||
264 | + ), | ||
265 | + ), | ||
265 | ), | 266 | ), |
266 | - ), | ||
267 | - ), | ||
268 | - ); | ||
269 | - }); | 267 | + ); |
268 | + }); | ||
270 | 269 | ||
271 | ///听音选图 | 270 | ///听音选图 |
272 | - Widget _pageViewVoicePictureItemWidget(CourseProcessTopics? topics) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
273 | - builder: (context, state){ | 271 | + Widget _pageViewVoicePictureItemWidget(CourseProcessTopics? topics) => |
272 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
273 | + builder: (context, state) { | ||
274 | final bloc = BlocProvider.of<TopicPictureBloc>(context); | 274 | final bloc = BlocProvider.of<TopicPictureBloc>(context); |
275 | return SafeArea( | 275 | return SafeArea( |
276 | child: Column( | 276 | child: Column( |
@@ -283,101 +283,101 @@ class _TopicPicturePage extends StatelessWidget { | @@ -283,101 +283,101 @@ class _TopicPicturePage extends StatelessWidget { | ||
283 | bloc.add(VoicePlayEvent()); | 283 | bloc.add(VoicePlayEvent()); |
284 | }, | 284 | }, |
285 | child: Image.asset( | 285 | child: Image.asset( |
286 | - bloc.voicePlayState == VoicePlayState.playing?'reade_answer'.assetGif:'voice'.assetPng, | 286 | + bloc.voicePlayState == VoicePlayState.playing |
287 | + ? 'reade_answer'.assetGif | ||
288 | + : 'voice'.assetPng, | ||
287 | height: 33.h, | 289 | height: 33.h, |
288 | width: 30.w, | 290 | width: 30.w, |
289 | ), | 291 | ), |
290 | ), | 292 | ), |
291 | 10.horizontalSpace, | 293 | 10.horizontalSpace, |
292 | - Text( | ||
293 | - topics?.word??'', | 294 | + Text(topics?.word ?? '', |
294 | style: TextStyle( | 295 | style: TextStyle( |
295 | - fontSize: 20.sp, | ||
296 | - color: const Color(0xFF333333) | ||
297 | - ) | ||
298 | - ) | 296 | + fontSize: 20.sp, color: const Color(0xFF333333))) |
299 | ], | 297 | ], |
300 | ), | 298 | ), |
301 | 26.verticalSpace, | 299 | 26.verticalSpace, |
302 | SizedBox( | 300 | SizedBox( |
303 | height: 143.h, | 301 | height: 143.h, |
304 | - width: 163.w * (topics?.topicAnswerList?.length??0), | 302 | + width: 163.w * (topics?.topicAnswerList?.length ?? 0), |
305 | child: ListView.builder( | 303 | child: ListView.builder( |
306 | scrollDirection: Axis.horizontal, | 304 | scrollDirection: Axis.horizontal, |
307 | physics: const NeverScrollableScrollPhysics(), | 305 | physics: const NeverScrollableScrollPhysics(), |
308 | - itemCount: topics?.topicAnswerList?.length??0, | ||
309 | - itemBuilder: (BuildContext context,int index){ | ||
310 | - return _decodeVoiceImageWidget(index,topics?.topicAnswerList?[index]); | ||
311 | - }) | ||
312 | - , | 306 | + itemCount: topics?.topicAnswerList?.length ?? 0, |
307 | + itemBuilder: (BuildContext context, int index) { | ||
308 | + return _decodeVoiceImageWidget( | ||
309 | + index, topics?.topicAnswerList?[index]); | ||
310 | + }), | ||
313 | ) | 311 | ) |
314 | ], | 312 | ], |
315 | ), | 313 | ), |
316 | ); | 314 | ); |
317 | }); | 315 | }); |
318 | 316 | ||
319 | - Widget _decodeVoiceImageWidget(int index,CourseProcessTopicsTopicAnswerList? answerList) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
320 | - buildWhen: (_, s) => s is SelectItemChangeState, | ||
321 | - builder: (context,state){ | ||
322 | - final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
323 | - return Container( | ||
324 | - padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
325 | - child: GestureDetector( | ||
326 | - onTap: () => bloc.add(SelectItemEvent(index)), | ||
327 | - child: Container( | ||
328 | - padding: const EdgeInsets.all(4.5), | ||
329 | - decoration: BoxDecoration( | ||
330 | - color: bloc.selectItem == index?const Color(0xFF00B6F1):Colors.white, | ||
331 | - borderRadius: BorderRadius.circular(15), | ||
332 | - ), | ||
333 | - height: 143.h, | ||
334 | - width: 143.w, | ||
335 | - child: Container( | ||
336 | - decoration: BoxDecoration( | ||
337 | - color: Colors.white, | 317 | + Widget _decodeVoiceImageWidget( |
318 | + int index, CourseProcessTopicsTopicAnswerList? answerList) => | ||
319 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
320 | + buildWhen: (_, s) => s is SelectItemChangeState, | ||
321 | + builder: (context, state) { | ||
322 | + final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
323 | + return Container( | ||
324 | + padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
325 | + child: GestureDetector( | ||
326 | + onTap: () => bloc.add(SelectItemEvent(index)), | ||
327 | + child: Container( | ||
328 | + padding: const EdgeInsets.all(4.5), | ||
329 | + decoration: BoxDecoration( | ||
330 | + color: bloc.selectItem == index | ||
331 | + ? const Color(0xFF00B6F1) | ||
332 | + : Colors.white, | ||
338 | borderRadius: BorderRadius.circular(15), | 333 | borderRadius: BorderRadius.circular(15), |
339 | - border: Border.all( | ||
340 | - width: 1.0, | ||
341 | - color: const Color(0xFF140C10) | ||
342 | - ), | ||
343 | - image: DecorationImage( | ||
344 | - fit: BoxFit.fitWidth, | ||
345 | - image: NetworkImage(answerList?.picUrl??'') | ||
346 | - ) | 334 | + ), |
335 | + height: 143.h, | ||
336 | + width: 143.w, | ||
337 | + child: Container( | ||
338 | + decoration: BoxDecoration( | ||
339 | + color: Colors.white, | ||
340 | + borderRadius: BorderRadius.circular(15), | ||
341 | + border: Border.all( | ||
342 | + width: 1.0, color: const Color(0xFF140C10)), | ||
343 | + image: DecorationImage( | ||
344 | + fit: BoxFit.fitWidth, | ||
345 | + image: NetworkImage(answerList?.picUrl ?? ''))), | ||
346 | + ), | ||
347 | ), | 347 | ), |
348 | ), | 348 | ), |
349 | - ), | ||
350 | - ), | ||
351 | - ); | ||
352 | - }); | 349 | + ); |
350 | + }); | ||
353 | 351 | ||
354 | ///听音选字 | 352 | ///听音选字 |
355 | - Widget _pageViewVoiceWordItemWidget(CourseProcessTopics? topics) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
356 | - builder: (context, state){ | 353 | + Widget _pageViewVoiceWordItemWidget(CourseProcessTopics? topics) => |
354 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
355 | + builder: (context, state) { | ||
357 | final bloc = BlocProvider.of<TopicPictureBloc>(context); | 356 | final bloc = BlocProvider.of<TopicPictureBloc>(context); |
358 | return SafeArea( | 357 | return SafeArea( |
359 | child: Column( | 358 | child: Column( |
360 | children: [ | 359 | children: [ |
361 | GestureDetector( | 360 | GestureDetector( |
362 | - onTap: () { | ||
363 | - bloc.add(VoicePlayEvent()); | ||
364 | - }, | ||
365 | - child: Image.asset( | ||
366 | - bloc.voicePlayState == VoicePlayState.playing?'reade_answer'.assetGif:'voice'.assetPng, | ||
367 | - height: 33.h, | ||
368 | - width: 30.w | ||
369 | - ) | ||
370 | - ), | 361 | + onTap: () { |
362 | + bloc.add(VoicePlayEvent()); | ||
363 | + }, | ||
364 | + child: Image.asset( | ||
365 | + bloc.voicePlayState == VoicePlayState.playing | ||
366 | + ? 'reade_answer'.assetGif | ||
367 | + : 'voice'.assetPng, | ||
368 | + height: 33.h, | ||
369 | + width: 30.w)), | ||
371 | 26.verticalSpace, | 370 | 26.verticalSpace, |
372 | SizedBox( | 371 | SizedBox( |
373 | - width: 163.w * (topics?.topicAnswerList?.length??0), | 372 | + width: 163.w * (topics?.topicAnswerList?.length ?? 0), |
374 | height: 143.h, | 373 | height: 143.h, |
375 | child: ListView.builder( | 374 | child: ListView.builder( |
376 | scrollDirection: Axis.horizontal, | 375 | scrollDirection: Axis.horizontal, |
377 | itemCount: topics?.topicAnswerList?.length, | 376 | itemCount: topics?.topicAnswerList?.length, |
378 | physics: const NeverScrollableScrollPhysics(), | 377 | physics: const NeverScrollableScrollPhysics(), |
379 | - itemBuilder: (BuildContext context,int index){ | ||
380 | - return _decodeVoiceWordImageWidget(index, topics!.topicAnswerList![index]); | 378 | + itemBuilder: (BuildContext context, int index) { |
379 | + return _decodeVoiceWordImageWidget( | ||
380 | + index, topics!.topicAnswerList![index]); | ||
381 | }), | 381 | }), |
382 | ), | 382 | ), |
383 | ], | 383 | ], |
@@ -385,73 +385,72 @@ class _TopicPicturePage extends StatelessWidget { | @@ -385,73 +385,72 @@ class _TopicPicturePage extends StatelessWidget { | ||
385 | ); | 385 | ); |
386 | }); | 386 | }); |
387 | 387 | ||
388 | - Widget _decodeVoiceWordImageWidget(int index,CourseProcessTopicsTopicAnswerList answerList) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
389 | - buildWhen: (_, s) => s is SelectItemChangeState, | ||
390 | - builder: (context,state){ | ||
391 | - final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
392 | - return GestureDetector( | ||
393 | - onTap: () => bloc.add(SelectItemEvent(index)), | ||
394 | - child: Container( | ||
395 | - width: 163.w, | ||
396 | - height: 143.h, | ||
397 | - padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
398 | - child: Container( | ||
399 | - width: 143.w, | ||
400 | - height: 143.h, | ||
401 | - padding: EdgeInsets.only(left: 13.w,right: 13.w,top: 13.h,bottom: 13.h), | ||
402 | - decoration: BoxDecoration( | ||
403 | - color: Colors.white, | ||
404 | - borderRadius: BorderRadius.circular(15), | ||
405 | - border: Border.all( | ||
406 | - width: 1.0, | ||
407 | - color: const Color(0xFF140C10) | ||
408 | - ), | ||
409 | - ), | ||
410 | - child: Column( | ||
411 | - mainAxisAlignment: MainAxisAlignment.end, | ||
412 | - children: [ | ||
413 | - Expanded( | ||
414 | - child: Container( | ||
415 | - alignment: Alignment.center, | ||
416 | - child: Text( | ||
417 | - answerList.word??'', | ||
418 | - style: TextStyle( | ||
419 | - fontSize: 20.sp, | ||
420 | - color: const Color(0xFF333333) | ||
421 | - ) | ||
422 | - ), | ||
423 | - ), | 388 | + Widget _decodeVoiceWordImageWidget( |
389 | + int index, CourseProcessTopicsTopicAnswerList answerList) => | ||
390 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
391 | + buildWhen: (_, s) => s is SelectItemChangeState, | ||
392 | + builder: (context, state) { | ||
393 | + final bloc = BlocProvider.of<TopicPictureBloc>(context); | ||
394 | + return GestureDetector( | ||
395 | + onTap: () => bloc.add(SelectItemEvent(index)), | ||
396 | + child: Container( | ||
397 | + width: 163.w, | ||
398 | + height: 143.h, | ||
399 | + padding: EdgeInsets.symmetric(horizontal: 10.w), | ||
400 | + child: Container( | ||
401 | + width: 143.w, | ||
402 | + height: 143.h, | ||
403 | + padding: EdgeInsets.only( | ||
404 | + left: 13.w, right: 13.w, top: 13.h, bottom: 13.h), | ||
405 | + decoration: BoxDecoration( | ||
406 | + color: Colors.white, | ||
407 | + borderRadius: BorderRadius.circular(15), | ||
408 | + border: | ||
409 | + Border.all(width: 1.0, color: const Color(0xFF140C10)), | ||
424 | ), | 410 | ), |
425 | - Container( | ||
426 | - height: 30.h, | ||
427 | - width: double.infinity, | ||
428 | - decoration: BoxDecoration( | ||
429 | - color: bloc.selectItem == index?const Color(0xFF00B6F1):Colors.white, | ||
430 | - borderRadius: BorderRadius.circular(15.r), | ||
431 | - border: Border.all( | ||
432 | - width: 1.5, | ||
433 | - color: const Color(0xFF140C10) | 411 | + child: Column( |
412 | + mainAxisAlignment: MainAxisAlignment.end, | ||
413 | + children: [ | ||
414 | + Expanded( | ||
415 | + child: Container( | ||
416 | + alignment: Alignment.center, | ||
417 | + child: Text(answerList.word ?? '', | ||
418 | + style: TextStyle( | ||
419 | + fontSize: 20.sp, | ||
420 | + color: const Color(0xFF333333))), | ||
421 | + ), | ||
434 | ), | 422 | ), |
435 | - ), | ||
436 | - alignment: Alignment.center, | ||
437 | - child: Image.asset('choose'.assetPng), | ||
438 | - ) | ||
439 | - ], | 423 | + Container( |
424 | + height: 30.h, | ||
425 | + width: double.infinity, | ||
426 | + decoration: BoxDecoration( | ||
427 | + color: bloc.selectItem == index | ||
428 | + ? const Color(0xFF00B6F1) | ||
429 | + : Colors.white, | ||
430 | + borderRadius: BorderRadius.circular(15.r), | ||
431 | + border: Border.all( | ||
432 | + width: 1.5, color: const Color(0xFF140C10)), | ||
433 | + ), | ||
434 | + alignment: Alignment.center, | ||
435 | + child: Image.asset('choose'.assetPng), | ||
436 | + ) | ||
437 | + ], | ||
438 | + ), | ||
439 | + ), | ||
440 | ), | 440 | ), |
441 | - ), | ||
442 | - ), | ||
443 | - ); | ||
444 | - }); | 441 | + ); |
442 | + }); | ||
445 | 443 | ||
446 | ///语音问答 | 444 | ///语音问答 |
447 | - Widget _voiceAnswerItem(CourseProcessTopics? topics) => BlocBuilder<TopicPictureBloc,TopicPictureState>( | ||
448 | - builder: (context, state) { | 445 | + Widget _voiceAnswerItem(CourseProcessTopics? topics) => |
446 | + BlocBuilder<TopicPictureBloc, TopicPictureState>( | ||
447 | + builder: (context, state) { | ||
449 | final bloc = BlocProvider.of<TopicPictureBloc>(context); | 448 | final bloc = BlocProvider.of<TopicPictureBloc>(context); |
450 | return Row( | 449 | return Row( |
451 | mainAxisAlignment: MainAxisAlignment.center, | 450 | mainAxisAlignment: MainAxisAlignment.center, |
452 | children: [ | 451 | children: [ |
453 | OwImageWidget( | 452 | OwImageWidget( |
454 | - name:topics?.picUrl??'', | 453 | + name: topics?.picUrl ?? '', |
455 | height: 186.h, | 454 | height: 186.h, |
456 | width: 186.w, | 455 | width: 186.w, |
457 | ), | 456 | ), |
@@ -470,12 +469,14 @@ class _TopicPicturePage extends StatelessWidget { | @@ -470,12 +469,14 @@ class _TopicPicturePage extends StatelessWidget { | ||
470 | child: Row( | 469 | child: Row( |
471 | children: [ | 470 | children: [ |
472 | Image.asset( | 471 | Image.asset( |
473 | - bloc.voicePlayState == VoicePlayState.playing?'reade_answer'.assetGif:'voice'.assetPng, | 472 | + bloc.voicePlayState == VoicePlayState.playing |
473 | + ? 'reade_answer'.assetGif | ||
474 | + : 'voice'.assetPng, | ||
474 | height: 52.h, | 475 | height: 52.h, |
475 | width: 46.w, | 476 | width: 46.w, |
476 | ), | 477 | ), |
477 | 10.horizontalSpace, | 478 | 10.horizontalSpace, |
478 | - Text(topics?.word??'') | 479 | + Text(topics?.word ?? '') |
479 | ], | 480 | ], |
480 | ), | 481 | ), |
481 | ), | 482 | ), |
@@ -494,13 +495,17 @@ class _TopicPicturePage extends StatelessWidget { | @@ -494,13 +495,17 @@ class _TopicPicturePage extends StatelessWidget { | ||
494 | } | 495 | } |
495 | if (topics?.type == TopicType.voiceQuestion.value || | 496 | if (topics?.type == TopicType.voiceQuestion.value || |
496 | topics?.type == TopicType.voiceWord.value) { | 497 | topics?.type == TopicType.voiceWord.value) { |
497 | - bloc.add(XSVoiceStartEvent(topics?.keyWord??'', '0',UserUtil.getUser()!.id.toString())); | 498 | + bloc.add(XSVoiceStartEvent(topics?.keyWord ?? '', '0', |
499 | + UserUtil.getUser()!.id.toString())); | ||
498 | } else { | 500 | } else { |
499 | - bloc.add(XSVoiceStartEvent(topics?.word??'', '0',UserUtil.getUser()!.id.toString())); | 501 | + bloc.add(XSVoiceStartEvent(topics?.word ?? '', '0', |
502 | + UserUtil.getUser()!.id.toString())); | ||
500 | } | 503 | } |
501 | }, | 504 | }, |
502 | child: Image.asset( | 505 | child: Image.asset( |
503 | - bloc.isVoicing?'micro_phone'.assetGif:'micro_phone'.assetPng, | 506 | + bloc.isVoicing |
507 | + ? 'micro_phone'.assetGif | ||
508 | + : 'micro_phone'.assetPng, | ||
504 | height: 75.w, | 509 | height: 75.w, |
505 | width: 75.w, | 510 | width: 75.w, |
506 | ), | 511 | ), |
lib/pages/practice/widgets/practice_header_widget.dart
@@ -13,35 +13,35 @@ class PracticeHeaderWidget extends StatelessWidget { | @@ -13,35 +13,35 @@ class PracticeHeaderWidget extends StatelessWidget { | ||
13 | Widget build(BuildContext context) { | 13 | Widget build(BuildContext context) { |
14 | return Container( | 14 | return Container( |
15 | color: Colors.white, | 15 | color: Colors.white, |
16 | - height: kToolbarHeight, | 16 | + height: kToolbarHeight + 3.h, |
17 | child: AppBar( | 17 | child: AppBar( |
18 | - leading: IconButton( | ||
19 | - icon: Image.asset( | 18 | + leading: GestureDetector( |
19 | + child: Image.asset( | ||
20 | 'back_around'.assetPng, | 20 | 'back_around'.assetPng, |
21 | - width: 40, | ||
22 | - height: 40, | 21 | + width: 40.w, |
22 | + height: 40.h, | ||
23 | ), | 23 | ), |
24 | - onPressed: () { | ||
25 | - onTap(); | ||
26 | - }, | 24 | + onTap: () => {onTap()}, |
27 | ), | 25 | ), |
28 | centerTitle: true, | 26 | centerTitle: true, |
29 | title: Container( | 27 | title: Container( |
30 | - height: 40.h, | ||
31 | - padding: EdgeInsets.symmetric(horizontal: 27.w, vertical: 6.h), | ||
32 | - decoration: BoxDecoration( | ||
33 | - color: const Color(0xFF00B6F1), | ||
34 | - borderRadius: BorderRadius.circular(20.r), | ||
35 | - border: Border.all( | ||
36 | - width: 1.0, | ||
37 | - color: const Color(0xFF333333), | ||
38 | - ), | ||
39 | - ), | ||
40 | - child: Text( | ||
41 | - title, | ||
42 | - style: TextStyle(fontSize: 15.sp, color: Colors.white), | ||
43 | - ), | 28 | + height: 40.h, |
29 | + width: 100.w, // 容器宽度 | ||
30 | + // padding: EdgeInsets.symmetric(horizontal: 27.w, vertical: 10.h), | ||
31 | + alignment: Alignment.center, | ||
32 | + decoration: BoxDecoration( | ||
33 | + color: const Color(0xFF00B6F1), | ||
34 | + borderRadius: BorderRadius.circular(20.r), | ||
35 | + border: Border.all( | ||
36 | + width: 1.0, | ||
37 | + color: const Color(0xFF333333), | ||
44 | ), | 38 | ), |
39 | + ), | ||
40 | + child: Text( | ||
41 | + title, | ||
42 | + style: TextStyle(fontSize: 15.sp, color: Colors.white), | ||
43 | + ), | ||
44 | + ), | ||
45 | )); | 45 | )); |
46 | } | 46 | } |
47 | } | 47 | } |