From 5989d2509d1e2369f53134da92ac875c0ddeb5e1 Mon Sep 17 00:00:00 2001 From: wuqifeng <540416539@qq.com> Date: Sun, 4 Aug 2024 13:32:40 +0800 Subject: [PATCH] feat:体验优化-选择题选中边框及时重置 --- lib/pages/practice/bloc/topic_picture_bloc.dart | 16 +++++++++++++++- lib/pages/practice/bloc/topic_picture_event.dart | 3 +++ lib/pages/practice/bloc/topic_picture_state.dart | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/pages/practice/bloc/topic_picture_bloc.dart b/lib/pages/practice/bloc/topic_picture_bloc.dart index ee88c2a..ce3bfa8 100644 --- a/lib/pages/practice/bloc/topic_picture_bloc.dart +++ b/lib/pages/practice/bloc/topic_picture_bloc.dart @@ -85,6 +85,7 @@ class TopicPictureBloc on(_voiceXsResult); on(_initVoiceSdk); on(_selectItemLoad); + on(_selectItemReset); on(_requestData); on(_voiceXsStart); on(_voiceXsStop); @@ -210,13 +211,22 @@ class TopicPictureBloc /// right音频长度比动效短,所以等动效完了再翻页 AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.right); await showStarRewardDialog(context, onDismiss: () { + _resetSelectItem(); autoFlipPage(); }); } else { await AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.wrong); + _resetSelectItem(); } } + ///重置选择 + void _selectItemReset( + SelectItemResetEvent event, Emitter emitter) async { + ///用于一次完整的选择后重置视图 + emitter(SelectItemResetState()); + } + ///为空则数据异常,用于是否晃动时需要 bool? checkAnswerRight(int selectIndex) { CourseProcessTopics? topics = _entity?.topics?[_currentPage]; @@ -319,11 +329,15 @@ class TopicPictureBloc await _voiceXsCancel(); } + void _resetSelectItem() { + _optionSelectItem = -1; + add(SelectItemResetEvent()); + } + Future closePlayerResource() async { if (voicePlayState == VoicePlayState.playing) { await audioPlayer.stop(); } - await ClickWithMusicController.instance.reset(); } ///是否是最后一页 diff --git a/lib/pages/practice/bloc/topic_picture_event.dart b/lib/pages/practice/bloc/topic_picture_event.dart index c2e416c..054051c 100644 --- a/lib/pages/practice/bloc/topic_picture_event.dart +++ b/lib/pages/practice/bloc/topic_picture_event.dart @@ -45,6 +45,9 @@ class SelectItemEvent extends TopicPictureEvent { SelectItemEvent(this.selectIndex); } +///选项重置,用于播放作答动效后重置(边框等) +class SelectItemResetEvent extends TopicPictureEvent {} + ///音频播放事件 class VoicePlayChangeEvent extends TopicPictureEvent {} diff --git a/lib/pages/practice/bloc/topic_picture_state.dart b/lib/pages/practice/bloc/topic_picture_state.dart index d1d9b5d..3d0a2d8 100644 --- a/lib/pages/practice/bloc/topic_picture_state.dart +++ b/lib/pages/practice/bloc/topic_picture_state.dart @@ -13,4 +13,6 @@ class CurrentPageIndexState extends TopicPictureState {} class SelectItemChangeState extends TopicPictureState {} +class SelectItemResetState extends TopicPictureState {} + class VoicePlayStateChange extends TopicPictureState {} -- libgit2 0.22.2