From 855a7e18a795f0db2453a19e3e8f26ba2ff553b4 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 29 五月 2025 16:32:41 +0800 Subject: [PATCH] UI调整 --- app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt | 85 ++++++++++++++++++++++++++++++++---------- 1 files changed, 64 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt b/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt index 13fc332..de291b6 100644 --- a/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt +++ b/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt @@ -15,8 +15,11 @@ import com.dollearn.student.R import com.dollearn.student.utils.AudioUtils import com.dollearn.student.utils.Const +import com.dollearn.student.utils.event.EmptyEvent import com.dollearn.student.utils.extention.clickDelay import kotlinx.android.synthetic.main.fragment_match.* +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe import org.jetbrains.anko.imageResource @@ -57,11 +60,15 @@ private val completedVoice = arrayListOf<String>() //已经选了的音频 飞到图片上了 var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误 + var isAutoPlaying = false + override fun onFirstVisibleToUser() { player.setOnAudioStatusUpdateListener(this) player.stopPlayMusic() + EventBus.getDefault().register(this) + handler = object : Handler(Looper.getMainLooper()){ override fun handleMessage(msg: Message) { super.handleMessage(msg) @@ -108,7 +115,6 @@ if (!playing){ voiceIndex = index handler?.sendEmptyMessage(PLAY_VOICE) - motion.transitionToEnd() } } } @@ -471,6 +477,16 @@ }) } + @Subscribe + fun onEvent(e: EmptyEvent){ + if (e.code == Const.EventCode.RECOVERD){ + if (act.fragments[act.vp.currentItem] == this){ //自动播放 + isAutoPlaying = true + cl_voice_1.callOnClick() + } + } + } + /** * 回到上一题,恢复状态 */ @@ -491,6 +507,10 @@ cl_voice_end_2.gone() cl_voice_end_3.gone() cl_voice_end_4.gone() + if (act.fragments[act.vp.currentItem] == this&&act.recoverd) { //自动播放 + isAutoPlaying = true + cl_voice_1.callOnClick() + } } companion object{ @@ -573,37 +593,24 @@ iv1_1.visible() iv2_1.visible() iv_playing_1.gone() - if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ - voiceIndex = -1 - nowVoiceView = null - } + } 1->{ iv1_2.visible() iv2_2.visible() iv_playing_2.gone() - if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ - voiceIndex = -1 - nowVoiceView = null - } + } 2->{ iv1_3.visible() iv2_3.visible() iv_playing_3.gone() - if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ - voiceIndex = -1 - nowVoiceView = null - } + } 3->{ iv1_4.visible() iv2_4.visible() iv_playing_4.gone() - if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ - voiceIndex = -1 - nowVoiceView = null - } } 4->{ @@ -631,16 +638,50 @@ voiceIndex = -1 } } - if (data!!.subjectList[group].filter { it.completed }.size == 4){ //全部答对 - handler?.sendEmptyMessage(TO_NEXT) - } if (errorPlaying) errorPlaying = false if (rightPlaying){ rightPlaying = false - nowVoiceView?.callOnClick() +// nowVoiceView?.callOnClick() //客户需求:回答正确后不再重播语音 直接下一题 data!!.subjectList[group][imgPosition].completed = true + + when(voiceIndex){ + 0->{ + if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ + voiceIndex = -1 + nowVoiceView = null + isAutoPlaying = true + cl_voice_2.callOnClick() + } + } + 1->{ + if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ + voiceIndex = -1 + nowVoiceView = null + isAutoPlaying = true + cl_voice_3.callOnClick() + } + } + 2->{ + if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ + voiceIndex = -1 + nowVoiceView = null + isAutoPlaying = true + cl_voice_4.callOnClick() + } + } + 3->{ + if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){ + voiceIndex = -1 + nowVoiceView = null + } + } + } + if (data!!.subjectList[group].filter { it.completed }.size == 4){ //全部答对 + handler?.sendEmptyMessage(TO_NEXT) + } + } } @@ -653,5 +694,7 @@ override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) + EventBus.getDefault().unregister(this) + } } \ No newline at end of file -- Gitblit v1.7.1