lmw
昨天 9904e5f900ba751c1fe719cdf889f00e9f1418e8
save
31个文件已修改
12个文件已添加
2033 ■■■■■ 已修改文件
app/src/main/java/com/dollearn/student/network/ApiService.kt 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/network/Apis.kt 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/network/HttpManager.kt 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/network/entity/ReqRestart.kt 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/network/entity/SubjectBean.kt 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceActivity.kt 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceFragment.kt 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/IncludeActivity.kt 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/ListenFragment.kt 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/LookImgFragment.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/MatchActivity.kt 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/QAActivity.kt 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/QAFragment.kt 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/adapter/IndexAdapter.kt 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/utils/Const.kt 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_grey_2dp.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_orange_8dp.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_white_8dp_padding.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/selector_bg_voice.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/selector_bg_white_grey.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/selector_enable_choose.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_listen.xml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_login.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_choose_voice.xml 133 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_include.xml 642 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_listen.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_match.xml 129 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_q_a.xml 334 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_index.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xxhdpi/bofangzhong_2.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xxhdpi/play_2.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xxhdpi/voice_answer_2.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xxhdpi/voice_question_2.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xxhdpi/yuyin_2.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/colors.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/xml/fragment_include_scene.xml 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/xml/scene_fragment_choose_voice.xml 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/xml/scene_fragment_listen_voice.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build.gradle 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xldutils-kotlin/src/main/res/values/colors.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/network/ApiService.kt
@@ -82,6 +82,12 @@
    @GET(Apis.userGameDifficulty)
    fun userGameDifficulty(@Query("week") week: Int): Flowable<ResultData<Int?>>
    @POST(Apis.restart)
    fun restart(@Body body : String): Flowable<ResultData<Any>>
    @POST(Apis.answerQuestion)
    fun answerQuestion(@Body body : String): Flowable<ResultData<Any>>
    @GET(Apis.getIsOpen)
    fun getIsOpen(): Flowable<ResultData<Boolean>>
app/src/main/java/com/dollearn/student/network/Apis.kt
@@ -3,8 +3,8 @@
object Apis {
    private var isTest = true
    private const val TEST_URL = "http://192.168.110.64:9000/" //周帅内网
//    private const val TEST_URL = "http://1.95.15.237:9000/" //外网
    private const val TEST_URL = "http://vwpmxwbhv59i.guyubao.com/" //周帅内网
//    private const val TEST_URL = "https://dollearn.com/api/" //外网
    private const val LINE_URL = "http://8.137.22.229:56666/" //正式服
    val BASE_URL = if (isTest) TEST_URL else LINE_URL
@@ -52,6 +52,8 @@
    const val gameAchievement = "study/base/study/gameAchievement"
    const val userGameDifficulty = "study/base/study/userGameDifficulty"
    const val getIsOpen = "management/tSysSet/getIsOpen"
    const val restart = "study/base/study/restart"
    const val answerQuestion = "study/base/study/answerQuestion"
    /**
app/src/main/java/com/dollearn/student/network/HttpManager.kt
@@ -126,6 +126,20 @@
    }
    /**
     * 重新开始答题
     */
    fun restart(day: Int,week: Int,type: Int): Flowable<ResultData<Any>> {
        return request().restart(Gson().toJson(ReqRestart(day,type,week)))
    }
    /**
     * 保存当前题目记录
     */
    fun answerQuestion(sortBean: SortBean): Flowable<ResultData<Any>> {
        return request().answerQuestion(Gson().toJson(sortBean))
    }
    /**
     * 完成学习
     */
    fun completeLearning(rate: Int,time: Int,day: Int,week: Int,season: Int,type: Int,teamIds:String): Flowable<ResultData<Int?>> {
app/src/main/java/com/dollearn/student/network/entity/ReqRestart.kt
New file
@@ -0,0 +1,7 @@
package com.dollearn.student.network.entity
data class ReqRestart(
    val day: Int,
    val type: Int,
    val week: Int
)
app/src/main/java/com/dollearn/student/network/entity/SubjectBean.kt
@@ -5,8 +5,10 @@
@Parcelize
data class SubjectBean(
    var accuracy: Double,
    val `data`: SubjectBeanData,
    val subjectList: List<List<Subject>>
    val subjectList: List<List<Subject>>,
    val list:List<SortBean>
):Parcelable
@Parcelize
@@ -29,4 +31,10 @@
    var right:Boolean = false, //回答正确
    var completed:Boolean = false, //已作答
    var listend:Boolean = false //已听音 归纳排除题需要
):Parcelable
@Parcelize
data class SortBean(
    val id: String?,
    var status: Int //1灰色未答题 2绿色正确 3红色错误
):Parcelable
app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceActivity.kt
@@ -8,15 +8,17 @@
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.dialog.TipDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.SortBean
import com.dollearn.student.network.entity.SubjectBean
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.home.adapter.IndexAdapter
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_listen.*
@@ -35,27 +37,66 @@
        intent.getIntExtra("season",0)
    }
    val data by lazy { intent.getParcelableExtra<SubjectBean>("data") }
    private val fragments    = arrayListOf<Fragment>()
    val fragments    = arrayListOf<Fragment>()
    var totalCount = 0 //总答题次数
    var rightCount = 0 //正确答题次数
    var time = 0 //学习秒数
    private var handler: Handler? = null
    val indexList = arrayListOf<SortBean>()
    private val indexAdapter = IndexAdapter(indexList)
    val vp by lazy { view_pager }
    var recoverd = false  //true已经恢复了进度,后续语音可以自动播放
    override fun initClick() {
        tv_last.setOnClickListener {
            (fragments[view_pager.currentItem-1] as ChooseVoiceFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem-1,true)
            if (view_pager.currentItem == 0)
                tv_last.gone()
            val tipDialog = TipDialog()
            tipDialog.arguments = bundleOf("msg" to "是否重新开始答题?确认后将清空当前答题进度")
            tipDialog.setCallback(object :TipDialog.OnClickCallback{
                override fun onOk() {
                    showDialog()
                    HttpManager.restart(day,week,2).request(this@ChooseVoiceActivity){_,_->
                        totalCount = 0 //总答题次数
                        rightCount = 0 //正确答题次数
                        time = 0 //学习秒数
                        indexList.forEach { it.status = 1 }
                        indexAdapter.notifyDataSetChanged()
                        data?.accuracy = 0.0
                        (fragments[0] as ChooseVoiceFragment).recover()
                        view_pager.setCurrentItem(0,false)
                    }
                }
                override fun onCancel() {
                }
            })
            tipDialog.show(supportFragmentManager,"restart")
        }
        tv_exit.setOnClickListener {
            onBackPressed()
        }
        indexAdapter.setOnItemClickListener { view, position ->
            val sortBean = indexList[position]
            if (position!=view_pager.currentItem&&(sortBean.status!=1||position == indexList.indexOf(indexList.first { it.status == 1 }))){
                (fragments[position] as ChooseVoiceFragment).recover()
                view_pager.setCurrentItem(position,false)
            }
        }
    }
    fun next(){
        val listenFragment = fragments[view_pager.currentItem] as ChooseVoiceFragment
        val sortBean = indexList[view_pager.currentItem]
        sortBean.status = if (listenFragment.right) 2 else 3 //修改本地答题结果,并上传服务器
        HttpManager.answerQuestion(sortBean).request(this){_,data->
            //保存成功
        }
        val filter = indexList.filter { it.status != 1 }
        data?.accuracy = filter.filter { it.status == 2 }.size.toDouble() / filter.size
        if (view_pager.currentItem == fragments.lastIndex){
            handler?.removeMessages(0)
            ResultActivity.startResult(this,day,week,season,2,totalCount,rightCount,data!!.data.integral,time,data!!.data.id)
@@ -65,14 +106,20 @@
                    (fragments[view_pager.currentItem+1] as ChooseVoiceFragment).recover()
                    view_pager.setCurrentItem(view_pager.currentItem+1,true)
                    tv_last.visible()
                    indexAdapter.notifyDataSetChanged()
                }
        }
    }
    override fun initView() {
        rv_index.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,false)
        rv_index.adapter = indexAdapter
        data?.apply {
            tv_progress.text = "已完成:1/${subjectList.size}"
            tv_progress.text = "已完成:1/%d\n正确率:%.2f%s".format(subjectList.size,accuracy*100,"%")
            indexList.clear()
            indexList.addAll(list)
            indexAdapter.notifyDataSetChanged()
            subjectList.forEachIndexed { index, subject ->
                fragments.add(ChooseVoiceFragment.getInstance(index))
            }
@@ -100,7 +147,7 @@
                }
                override fun onPageSelected(position: Int) {
                    tv_progress.text = "已完成:${position+1}/${fragments.size}"
                    tv_progress.text = "已完成:%d/%d\n正确率:%.2f%s".format(position+1,fragments.size,accuracy*100,"%")
                }
                override fun onPageScrollStateChanged(state: Int) {
@@ -127,6 +174,8 @@
                tv_last.visible()
            totalCount = data?.answerNumber?:0
            rightCount = data?.correctNumber?:0
            EventBus.getDefault().post(EmptyEvent(Const.EventCode.RECOVERD))
            recoverd = true
        }
    }
app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceFragment.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_choose_voice.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.jetbrains.anko.backgroundResource
import org.jetbrains.anko.support.v4.toast
@@ -52,17 +55,24 @@
    private var playing = false //播放中,不能有任何操作
    private val nameViews by lazy { arrayListOf(tv_1,tv_2,tv_3,tv_4) }
    private val bgs by lazy { arrayListOf(cl_1,cl_2,cl_3,cl_4) }
    private val endViews by lazy { arrayListOf(cl_voice_end_1,cl_voice_end_2,cl_voice_end_3,cl_voice_end_4) }
    private val act by lazy { (requireActivity() as ChooseVoiceActivity) }
    private var nowVoiceView:View? = null
    private val isShowText by lazy { SPUtils.instance().getBoolean(Const.IS_SHOW_TEXT,true) }
//    private val isShowText by lazy { SPUtils.instance().getBoolean(Const.IS_SHOW_TEXT,true) }
    private val isShowText = false
    private var isAutoPlaying = false //true 自动播放流程
    var right = true //true进入下一题为全对,false 一旦答错过就置为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)
@@ -92,8 +102,9 @@
            iv_3.setImageURI(originList[2].img)
            iv_4.setImageURI(originList[3].img)
        }
        showSubImage()
        initClick()
        showSubImage()
    }
    private fun initClick() {
@@ -130,6 +141,7 @@
                    nowVoiceView = cl_voice1
                    handler?.sendEmptyMessage(PLAY_RIGHT)
                }else{
                    right = false
                    handler?.sendEmptyMessage(PLAY_ERROR)
                    iv_error_1.visible()
                    dot_1.postDelayed({
@@ -245,12 +257,15 @@
        val shuffledList = list.shuffled()
        voiceList.clear()
        voiceList.addAll(shuffledList)
        if (isShowText)
            nameViews.forEachIndexed { index, textView ->
                if (index == currentIndex){
                    textView.text = originList[index].name
                    textView.backgroundResource = R.color.textColor99
                    bgs[index].backgroundResource = R.drawable.bg_orange_8dp
                    if (isShowText){
                        textView.text = originList[index].name
                        textView.backgroundResource = R.color.textColor99
                    }
                }else{
                    bgs[index].backgroundResource = R.drawable.bg_white_8dp_padding
                    textView.text = ""
                    textView.backgroundResource = R.color.page_bg
                }
@@ -300,11 +315,28 @@
            override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {
                endViews[currentIndex].visible()
            }
            override fun onTransitionTrigger(p0: MotionLayout?, p1: Int, p2: Boolean, p3: Float) {
            }
        })
        if (act.fragments[act.vp.currentItem] == this&&act.recoverd){ //自动播放
            isAutoPlaying = true
            cl_voice1.callOnClick()
        }
    }
    @Subscribe
    fun onEvent(e:EmptyEvent){
        if (e.code == Const.EventCode.RECOVERD){
            if (act.fragments[act.vp.currentItem] == this){ //自动播放
                isAutoPlaying = true
                cl_voice1.callOnClick()
            }
        }
    }
    /**
@@ -312,6 +344,7 @@
     */
    fun recover(){
        Log.e(TAG,"回到上一题,恢复答题前的状态")
        right = true
        motion.progress = 0f
        currentIndex = 0
        endViews.forEach { it.gone() }
@@ -386,18 +419,22 @@
            iv1_1.visible()
            iv2_1.visible()
            iv_playing_1.gone()
        }
        if (voiceIndex == 1){
            if (isAutoPlaying)
                cl_voice2.callOnClick()
        }else if (voiceIndex == 1){
            rl_check_2.visible()
            iv1_2.visible()
            iv2_2.visible()
            iv_playing_2.gone()
        }
        if (voiceIndex == 2){
            if (isAutoPlaying)
                cl_voice3.callOnClick()
        }else if (voiceIndex == 2){
            rl_check_3.visible()
            iv1_3.visible()
            iv2_3.visible()
            iv_playing_3.gone()
            if (isAutoPlaying)
                isAutoPlaying = false
        }
        if (voiceIndex == 3){
            iv1_1_end.visible()
@@ -423,7 +460,7 @@
        if (data!!.subjectList[group][currentIndex].completed){ //本题已答对
            Log.e(TAG,"选对答案后的播放结束3秒后进入下一图")
            if (currentIndex == 3){
                handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
                handler?.sendEmptyMessageDelayed(TO_NEXT,500)//万俊杰:缩短为0.5秒
            }else{
                currentIndex++
                showSubImage()
@@ -446,6 +483,7 @@
    override fun onDestroy() {
        super.onDestroy()
        EventBus.getDefault().unregister(this)
        handler?.removeCallbacksAndMessages(null)
    }
}
app/src/main/java/com/dollearn/student/ui/home/IncludeActivity.kt
@@ -8,16 +8,19 @@
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.dialog.TipDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.SortBean
import com.dollearn.student.network.entity.Subject
import com.dollearn.student.network.entity.SubjectBean
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.home.adapter.IndexAdapter
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_listen.*
@@ -43,37 +46,96 @@
    var time = 0 //学习秒数
    private var handler:Handler? = null
    val indexList = arrayListOf<SortBean>()
    private val indexAdapter = IndexAdapter(indexList)
    override fun initClick() {
        tv_last.setOnClickListener {
            (fragments[view_pager.currentItem-1] as IncludeFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem-1,true)
            if (view_pager.currentItem == 0)
                tv_last.gone()
            val tipDialog = TipDialog()
            tipDialog.arguments = bundleOf("msg" to "是否重新开始答题?确认后将清空当前答题进度")
            tipDialog.setCallback(object :TipDialog.OnClickCallback{
                override fun onOk() {
                    showDialog()
                    HttpManager.restart(day,week,3).request(this@IncludeActivity){_,_->
                        totalCount = 0 //总答题次数
                        rightCount = 0 //正确答题次数
                        time = 0 //学习秒数
                        indexList.forEach { it.status = 1 }
                        indexAdapter.notifyDataSetChanged()
                        data?.accuracy = 0.0
                        view_pager.setCurrentItem(0,false)
                        (fragments[0] as IncludeFragment).recover()
                    }
                }
                override fun onCancel() {
                }
            })
            tipDialog.show(supportFragmentManager,"restart")
        }
        tv_exit.setOnClickListener {
            onBackPressed()
        }
        indexAdapter.setOnItemClickListener { view, position ->
            val sortBean = indexList[position]
            if (position!=view_pager.currentItem&&(sortBean.status!=1||position == indexList.indexOf(indexList.first { it.status == 1 }))){
                view_pager.setCurrentItem(position,false)
                (fragments[position] as IncludeFragment).recover()
            }
        }
    }
    fun next(){
        val listenFragment = fragments[view_pager.currentItem] as IncludeFragment
        val sortBean = indexList[view_pager.currentItem]
        sortBean.status = if (listenFragment.right) 2 else 3 //修改本地答题结果,并上传服务器
        HttpManager.answerQuestion(sortBean).request(this){_,data->
            //保存成功
        }
        val filter = indexList.filter { it.status != 1 }
        data?.accuracy = filter.filter { it.status == 2 }.size.toDouble() / filter.size
        if (view_pager.currentItem == fragments.lastIndex){
            handler?.removeMessages(0)
            ResultActivity.startResult(this,day,week,season,3,totalCount,rightCount,data!!.data.integral,time,data!!.data.id)
            finish()
        }else{
            (fragments[view_pager.currentItem+1] as IncludeFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem+1,true)
            (fragments[view_pager.currentItem+1] as IncludeFragment).recover()
            tv_last.visible()
            indexAdapter.notifyDataSetChanged()
        }
    }
    override fun initView() {
        rv_index.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,false)
        rv_index.adapter = indexAdapter
        data?.apply {
            tv_progress.text = "已完成:1/${subjectList.size}"
            tv_progress.text = "已完成:1/%d\n正确率:%.2f%s".format(subjectList.size,accuracy*100,"%")
            indexList.clear()
            indexList.addAll(list)
            indexAdapter.notifyDataSetChanged()
            subjectList.forEachIndexed { index, subject ->
                fragments.add(IncludeFragment.getInstance(index))
            }
        }
        recover()
        handler= object :Handler(Looper.myLooper()!!){
            override fun handleMessage(msg: Message) {
                super.handleMessage(msg)
                if (msg.what == 0){
                    time++
                    handler?.sendEmptyMessageDelayed(0,1000L)
                }
            }
        }
        handler?.sendEmptyMessageDelayed(0,1000L)
    }
    private fun recover(){
        HttpManager.teamSchedule(day,week,3).request(this){_,data->
            view_pager.adapter = @SuppressLint("WrongConstant")
            object : FragmentPagerAdapter(supportFragmentManager,0) {
                override fun getItem(p0: Int): Fragment {
@@ -98,28 +160,12 @@
                }
                override fun onPageSelected(position: Int) {
                    tv_progress.text = "已完成:${position+1}/${subjectList.size}"
                    tv_progress.text = "已完成:%d/%d\n正确率:%.2f%s".format(position+1,this@IncludeActivity.data!!.subjectList.size,this@IncludeActivity.data!!.accuracy*100,"%")
                }
                override fun onPageScrollStateChanged(state: Int) {
                }
            })
        }
        recover()
        handler= object :Handler(Looper.myLooper()!!){
            override fun handleMessage(msg: Message) {
                super.handleMessage(msg)
                if (msg.what == 0){
                    time++
                    handler?.sendEmptyMessageDelayed(0,1000L)
                }
            }
        }
        handler?.sendEmptyMessageDelayed(0,1000L)
    }
    private fun recover(){
        HttpManager.teamSchedule(day,week,3).request(this){_,data->
            view_pager.setCurrentItem((data?.schedule?:1)-1,false)
            if (view_pager.currentItem != 0)
                tv_last.visible()
app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt
@@ -56,6 +56,10 @@
    private var nowVoiceView: View? = null
    private var isAutoPlaying = false //true自动播放流程
    var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误
    override fun onFirstVisibleToUser() {
        player.setOnAudioStatusUpdateListener(this)
        player.stopPlayMusic()
@@ -95,13 +99,13 @@
                iv_1.setImageURI(originList[0].img)
                iv_2.setImageURI(originList[1].img)
                iv_4.setImageURI(originList[3].img)
                if (cl_1.width > dip(203)){
                    voiceViews.forEach {
                        it.layoutParams.width = dip(159)
                        it.layoutParams.height = dip(52)
                        it.requestLayout()
                    }
                }
//                if (cl_1.width > dip(203)){
//                    voiceViews.forEach {
//                        it.layoutParams.width = dip(159)
//                        it.layoutParams.height = dip(52)
//                        it.requestLayout()
//                    }
//                }
                voiceViews.forEach { it.visible() }
            },500)
        }
@@ -115,8 +119,10 @@
                    constraintLayout.isEnabled = data!!.subjectList[group][index].listend
            }
        }
        showVoiceEnable()
        initClick()
        showVoiceEnable()
        isAutoPlaying = true
        voiceViews[0].callOnClick()
    }
    private fun initClick() {
@@ -149,6 +155,7 @@
                motion.transitionToEnd()
                showResultAnim()
            }else{
                right = false
                handler?.sendEmptyMessage(PLAY_ERROR)
                iv_error_1.visible()
                iv_error_1.postDelayed({
@@ -174,6 +181,7 @@
                motion.transitionToEnd()
                showResultAnim()
            }else{
                right = false
                handler?.sendEmptyMessage(PLAY_ERROR)
                iv_error_2.visible()
                iv_error_2.postDelayed({
@@ -199,6 +207,7 @@
                motion.transitionToEnd()
                showResultAnim()
            }else{
                right = false
                handler?.sendEmptyMessage(PLAY_ERROR)
                iv_error_3.visible()
                iv_error_3.postDelayed({
@@ -363,6 +372,8 @@
     */
    fun recover(){
        Log.e(TAG,"回到上一题,恢复答题前的状态")
        right = true
        isAutoPlaying = false
        motion.progress = 0f
        clearAnswerImg()
        currentImage = 0
@@ -482,7 +493,7 @@
                }else{
                    hideAnswerImg()
                    Log.e(TAG,"本题全部答对,3秒后进入下一图")
                    handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
                    handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒
                }
            }
        }
@@ -492,8 +503,27 @@
            rightPlaying = false
            data!!.subjectList[group][currentImage].completed = true
            nowVoiceView?.callOnClick()
        }else
        }else{
            subject.listend = true
            if (isAutoPlaying)
                when(voiceIndex){
                    0-> voiceViews[1].callOnClick()
                    1-> voiceViews[2].callOnClick()
                    3-> voiceViews[4].callOnClick()
                    2,4,5-> isAutoPlaying = false
                }
            else if (subject.completed){
                when(voiceIndex){
                    2->{
                        isAutoPlaying = true
                        voiceViews[3].callOnClick()
                    }
                    4->{
                        voiceViews[5].callOnClick()
                    }
                }
            }
        }
        showVoiceEnable()
    }
app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt
@@ -8,15 +8,18 @@
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.dialog.TipDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.SortBean
import com.dollearn.student.network.entity.SubjectBean
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.home.adapter.IndexAdapter
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_listen.*
@@ -43,21 +46,64 @@
    var time = 0 //学习秒数
    private var handler:Handler? = null
    val indexList = arrayListOf<SortBean>()
    private val indexAdapter = IndexAdapter(indexList)
    override fun initClick() {
        tv_last.setOnClickListener {
            val i = view_pager.currentItem - 1
            (fragments[i] as ListenFragment).recover()
            view_pager.setCurrentItem(i,i%4 == 0)
            if (view_pager.currentItem == 0)
                tv_last.gone()
            val tipDialog = TipDialog()
            tipDialog.arguments = bundleOf("msg" to "是否重新开始答题?确认后将清空当前答题进度")
            tipDialog.setCallback(object :TipDialog.OnClickCallback{
                override fun onOk() {
                    showDialog()
                    HttpManager.restart(day,week,1).request(this@ListenActivity){_,_->
                        totalCount = 0 //总答题次数
                        rightCount = 0 //正确答题次数
                        time = 0 //学习秒数
                        data!!.list.forEach { it.status = 1 }
                        data!!.accuracy = 0.0
                        indexList.forEach { it.status = 1 }
                        indexAdapter.notifyDataSetChanged()
                        data?.accuracy = 0.0
                        (fragments[0] as ListenFragment).recover()
                        view_pager.setCurrentItem(0,false)
                    }
                }
                override fun onCancel() {
                }
            })
            tipDialog.show(supportFragmentManager,"restart")
        }
        tv_exit.setOnClickListener {
            onBackPressed()
        }
        indexAdapter.setOnItemClickListener { view, position ->
            val sortBean = indexList[position]
            if (position!=viewPager.currentItem/4&&(sortBean.status!=1||position == indexList.indexOf(indexList.first { it.status == 1 }))){
                (fragments[position*4] as ListenFragment).recover()
                view_pager.setCurrentItem(position*4,false)
            }
        }
    }
    fun next(){
        val listenFragment = fragments[viewPager.currentItem] as ListenFragment
        val sortBean = data!!.list[viewPager.currentItem]
        sortBean.status = if (listenFragment.right) 2 else 3 //修改本地答题结果,并上传服务器
        HttpManager.answerQuestion(sortBean).request(this){_,data->
            //保存成功
        }
        indexList.clear()
        (data!!.subjectList.indices).forEach {
            val subList = data!!.list.subList(it * 4, it * 4 + 4)
            val status = if (subList.filter { it.status!=1 }.size != 4) 1 else if (subList.filter { it.status==2 }.size == 4) 2 else 3
            indexList.add(SortBean("",status))
        }
        val filter = indexList.filter { it.status != 1 }
        data?.accuracy = if (filter.isEmpty()) 0.0 else filter.filter { it.status == 2 }.size.toDouble() / filter.size
        if (view_pager.currentItem == fragments.lastIndex){
            handler?.removeMessages(0)
            ResultActivity.startResult(this,day,week,season,1,totalCount,rightCount,data!!.data.integral,time,data!!.data.id)
@@ -67,13 +113,23 @@
            (fragments[i] as ListenFragment).recover()
            view_pager.setCurrentItem(i,i%4 == 0)
            tv_last.visible()
            indexAdapter.notifyDataSetChanged()
        }
    }
    override fun initView() {
        rv_index.layoutManager = LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)
        rv_index.adapter = indexAdapter
        data?.apply {
            val flatMap = subjectList?.flatMap { it }
            tv_progress.text = "已完成:1/${flatMap.size}"
            tv_progress.text = "已完成:1/%d\n正确率:%.2f%s".format(subjectList.size,accuracy*100,"%")
            indexList.clear()
            (subjectList.indices).forEach {
                val subList = list.subList(it * 4, it * 4 + 4)
                val status = if (subList.filter { it.status!=1 }.size != 4) 1 else if (subList.filter { it.status==2 }.size == 4) 2 else 3
                indexList.add(SortBean("",status))
            }
            indexAdapter.notifyDataSetChanged()
            flatMap.forEachIndexed { index, subject ->
                fragments.add(ListenFragment.getInstance(index/4,index%4))
            }
@@ -101,7 +157,7 @@
                }
                override fun onPageSelected(position: Int) {
                    tv_progress.text = "已完成:${position+1}/${flatMap.size}"
                    tv_progress.text = "已完成:%d/%d\n正确率:%.2f%s".format(position/4+1,subjectList.size,accuracy*100,"%")
                }
                override fun onPageScrollStateChanged(state: Int) {
app/src/main/java/com/dollearn/student/ui/home/ListenFragment.kt
@@ -53,6 +53,8 @@
    private val resultViewList by lazy { arrayListOf(result_1,result_2,result_3,result_4) }
    var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误
    override fun onFirstVisibleToUser() {
        player.setOnAudioStatusUpdateListener(this)
        player.stopPlayMusic()
@@ -106,7 +108,7 @@
            }
        }
        handler?.sendEmptyMessageDelayed(PLAY_VOICE,1500) //进入题目2秒后播放,这里写1.5秒 预算进网络语音加载时间
        handler?.sendEmptyMessageDelayed(PLAY_VOICE,200) //2025.4.8 立即播放
        initClick()
    }
@@ -129,7 +131,8 @@
        Log.e(TAG,"回到上一题,恢复答题前的状态")
        hasListen = false
        hasRight = false
        handler?.sendEmptyMessageDelayed(PLAY_VOICE,1500) //进入题目2秒后播放,这里写1.5秒 预算进网络语音加载时间
        right = true
        handler?.sendEmptyMessageDelayed(PLAY_VOICE,200) //改为立即播放
        cl_1.progress = 0f
        cl_2.progress = 0f
        cl_3.progress = 0f
@@ -158,7 +161,7 @@
    private fun setResultAnimation(v:MotionLayout,index: Int){
        v.clickDelay {
            if (!hasListen) {
                myToast("请先听题")
//                myToast("请先听题")
                return@clickDelay
            }
            if (playing)
@@ -169,6 +172,7 @@
                v.transitionToEnd()
                if (randomList[index].correct != correctVoice){ //答案不对,结束后消失
                    hasListen = false
                    right = false
                    handler?.sendEmptyMessage(PLAY_ERROR)
                    v.setTransitionListener(object :MotionLayout.TransitionListener{
                        override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
@@ -209,14 +213,16 @@
        iv_playing.gone()
        if (hasRight&&!playing){ //选对答案后的播放结束3秒后进入下一图
            Log.e(TAG,"选对答案后的播放结束3秒后进入下一图")
            handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
            handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒
        }
        if (rightPlaying){
            rightPlaying = false
            hasRight = true
            handler?.sendEmptyMessage(PLAY_VOICE)
        }else if (errorPlaying)
        }else if (errorPlaying){
            errorPlaying = false
            cl_voice.callOnClick()
        }
        else if (!hasRight)
            hasListen = true
    }
app/src/main/java/com/dollearn/student/ui/home/LookImgFragment.kt
@@ -288,7 +288,7 @@
        }
        if (data!!.storyList[index].completed){ //本题已答对
            Log.e(TAG,"选对答案后的播放结束3秒后进入下一图")
            handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
            handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒
        }
    }
app/src/main/java/com/dollearn/student/ui/home/MatchActivity.kt
@@ -8,15 +8,18 @@
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.dialog.TipDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.SortBean
import com.dollearn.student.network.entity.SubjectBean
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.home.adapter.IndexAdapter
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_listen.*
@@ -42,20 +45,56 @@
    var time = 0 //学习秒数
    private var handler:Handler? = null
    val indexList = arrayListOf<SortBean>()
    private val indexAdapter = IndexAdapter(indexList)
    override fun initClick() {
        tv_last.setOnClickListener {
            (fragments[view_pager.currentItem-1] as MatchFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem-1,true)
            if (view_pager.currentItem == 0)
                tv_last.gone()
            val tipDialog = TipDialog()
            tipDialog.arguments = bundleOf("msg" to "是否重新开始答题?确认后将清空当前答题进度")
            tipDialog.setCallback(object :TipDialog.OnClickCallback{
                override fun onOk() {
                    showDialog()
                    HttpManager.restart(day,week,5).request(this@MatchActivity){_,_->
                        totalCount = 0 //总答题次数
                        rightCount = 0 //正确答题次数
                        time = 0 //学习秒数
                        indexList.forEach { it.status = 1 }
                        indexAdapter.notifyDataSetChanged()
                        data?.accuracy = 0.0
                        (fragments[0] as MatchFragment).recover()
                        view_pager.setCurrentItem(0,false)
                    }
                }
                override fun onCancel() {
                }
            })
            tipDialog.show(supportFragmentManager,"restart")
        }
        tv_exit.setOnClickListener {
            onBackPressed()
        }
        indexAdapter.setOnItemClickListener { view, position ->
            val sortBean = indexList[position]
            if (position!=view_pager.currentItem&&(sortBean.status!=1||position == indexList.indexOf(indexList.first { it.status == 1 }))){
                (fragments[position] as MatchFragment).recover()
                view_pager.setCurrentItem(position,false)
            }
        }
    }
    fun next(){
        val listenFragment = fragments[view_pager.currentItem] as MatchFragment
        val sortBean = indexList[view_pager.currentItem]
        sortBean.status = if (listenFragment.right) 2 else 3 //修改本地答题结果,并上传服务器
        HttpManager.answerQuestion(sortBean).request(this){_,data->
            //保存成功
        }
        val filter = indexList.filter { it.status != 1 }
        data?.accuracy = filter.filter { it.status == 2 }.size.toDouble() / filter.size
        if (view_pager.currentItem == fragments.lastIndex){
            handler?.removeMessages(0)
            ResultActivity.startResult(this,day,week,season,5,totalCount,rightCount,data!!.data.integral,time,data!!.data.id)
@@ -64,12 +103,18 @@
            (fragments[view_pager.currentItem+1] as MatchFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem+1,true)
            tv_last.visible()
            indexAdapter.notifyDataSetChanged()
        }
    }
    override fun initView() {
        rv_index.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,false)
        rv_index.adapter = indexAdapter
        data?.apply {
            tv_progress.text = "已完成:1/${subjectList.size}"
            tv_progress.text = "已完成:1/%d\n正确率:%.2f%s".format(subjectList.size,accuracy*100,"%")
            indexList.clear()
            indexList.addAll(list)
            indexAdapter.notifyDataSetChanged()
            subjectList.forEachIndexed { index, subject ->
                fragments.add(MatchFragment.getInstance(index))
            }
@@ -97,7 +142,7 @@
                }
                override fun onPageSelected(position: Int) {
                    tv_progress.text = "已完成:${position+1}/${subjectList.size}"
                    tv_progress.text = "已完成:%d/%d\n正确率:%.2f%s".format(position+1,subjectList.size,accuracy*100,"%")
                }
                override fun onPageScrollStateChanged(state: Int) {
app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt
@@ -56,6 +56,9 @@
    private val completedVoice = arrayListOf<String>() //已经选了的音频 飞到图片上了
    var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误
    override fun onFirstVisibleToUser() {
        player.setOnAudioStatusUpdateListener(this)
        player.stopPlayMusic()
@@ -182,6 +185,7 @@
                motion.transitionToEnd()
                handler?.sendEmptyMessage(PLAY_RIGHT)
            }else{
                right = false
                result_1.imageResource = R.mipmap.zhifushibai
                handler?.sendEmptyMessage(PLAY_ERROR)
            }
@@ -472,6 +476,7 @@
     */
    fun recover(){
        Log.e(TAG,"回到上一题,恢复答题前的状态")
        right = true
        motion.progress = 0f
        data!!.subjectList[group].forEach {
            it.completed = false
app/src/main/java/com/dollearn/student/ui/home/QAActivity.kt
@@ -8,15 +8,18 @@
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.dialog.TipDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.SortBean
import com.dollearn.student.network.entity.SubjectBean
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.home.adapter.IndexAdapter
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_listen.*
@@ -42,20 +45,56 @@
    var time = 0 //学习秒数
    private var handler:Handler? = null
    val indexList = arrayListOf<SortBean>()
    private val indexAdapter = IndexAdapter(indexList)
    override fun initClick() {
        tv_last.setOnClickListener {
            (fragments[view_pager.currentItem-1] as QAFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem-1,true)
            if (view_pager.currentItem == 0)
                tv_last.gone()
            val tipDialog = TipDialog()
            tipDialog.arguments = bundleOf("msg" to "是否重新开始答题?确认后将清空当前答题进度")
            tipDialog.setCallback(object :TipDialog.OnClickCallback{
                override fun onOk() {
                    showDialog()
                    HttpManager.restart(day,week,4).request(this@QAActivity){_,_->
                        totalCount = 0 //总答题次数
                        rightCount = 0 //正确答题次数
                        time = 0 //学习秒数
                        indexList.forEach { it.status = 1 }
                        indexAdapter.notifyDataSetChanged()
                        data?.accuracy = 0.0
                        (fragments[0] as QAFragment).recover()
                        view_pager.setCurrentItem(0,false)
                    }
                }
                override fun onCancel() {
                }
            })
            tipDialog.show(supportFragmentManager,"restart")
        }
        tv_exit.setOnClickListener {
            onBackPressed()
        }
        indexAdapter.setOnItemClickListener { view, position ->
            val sortBean = indexList[position]
            if (position!=view_pager.currentItem&&(sortBean.status!=1||position == indexList.indexOf(indexList.first { it.status == 1 }))){
                (fragments[position] as QAFragment).recover()
                view_pager.setCurrentItem(position,false)
            }
        }
    }
    fun next(){
        val listenFragment = fragments[view_pager.currentItem] as QAFragment
        val sortBean = indexList[view_pager.currentItem]
        sortBean.status = if (listenFragment.right) 2 else 3 //修改本地答题结果,并上传服务器
        HttpManager.answerQuestion(sortBean).request(this){_,data->
            //保存成功
        }
        val filter = indexList.filter { it.status != 1 }
        data?.accuracy = filter.filter { it.status == 2 }.size.toDouble() / filter.size
        if (view_pager.currentItem == fragments.lastIndex){
            handler?.removeMessages(0)
            ResultActivity.startResult(this,day,week,season,4,totalCount,rightCount,data!!.data.integral,time,data!!.data.id)
@@ -64,12 +103,18 @@
            (fragments[view_pager.currentItem+1] as QAFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem+1,true)
            tv_last.visible()
            indexAdapter.notifyDataSetChanged()
        }
    }
    override fun initView() {
        rv_index.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,false)
        rv_index.adapter = indexAdapter
        data?.apply {
            tv_progress.text = "已完成:1/${subjectList.size}"
            tv_progress.text = "已完成:1/%d\n正确率:%.2f%s".format(subjectList.size,accuracy*100,"%")
            indexList.clear()
            indexList.addAll(list)
            indexAdapter.notifyDataSetChanged()
            subjectList.forEachIndexed { index, subject ->
                fragments.add(QAFragment.getInstance(index))
            }
@@ -97,7 +142,7 @@
                }
                override fun onPageSelected(position: Int) {
                    tv_progress.text = "已完成:${position+1}/${subjectList.size}"
                    tv_progress.text = "已完成:%d/%d\n正确率:%.2f%s".format(position+1,subjectList.size,accuracy*100,"%")
                }
                override fun onPageScrollStateChanged(state: Int) {
app/src/main/java/com/dollearn/student/ui/home/QAFragment.kt
@@ -71,6 +71,11 @@
    private var nowVoiceView: View? = null
    private var isAutoPlaying = 0
    var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误
    override fun onFirstVisibleToUser() {
        player.setOnAudioStatusUpdateListener(this)
        player.stopPlayMusic()
@@ -120,13 +125,15 @@
                act.rightCount++
                Log.e(TAG,"选择正确")
                transAnimation(cl_answer_1,voiceViews[questionIndex])
                resultViews[questionIndex].visible()
                resultViews[questionIndex].postDelayed({
                    resultViews[questionIndex].gone()
                },3000)
                val resultView = resultViews[questionIndex]
                resultView.visible()
                resultView.postDelayed({
                    resultView.gone()
                },2000)
                nowVoiceView = voiceViews[questionIndex]
                handler?.sendEmptyMessage(PLAY_RIGHT)
            }else{
                right = false
                recoverAnswer()
                handler?.sendEmptyMessage(PLAY_ERROR)
                dot_1.visible()
@@ -134,7 +141,7 @@
                dot_1.postDelayed({
                    dot_1.gone()
                    iv_error_1.gone()
                },3000)
                },2000)
            }
        }
        rl_check_2.clickDelay {
@@ -151,10 +158,11 @@
                act.rightCount++
                Log.e(TAG,"选择正确")
                transAnimation(cl_answer_2,voiceViews[questionIndex])
                resultViews[questionIndex].visible()
                resultViews[questionIndex].postDelayed({
                    resultViews[questionIndex].gone()
                },3000)
                val resultView = resultViews[questionIndex]
                resultView.visible()
                resultView.postDelayed({
                    resultView.gone()
                },2000)
                nowVoiceView = voiceViews[questionIndex]
                handler?.sendEmptyMessage(PLAY_RIGHT)
            }else{
@@ -165,7 +173,7 @@
                dot_2.postDelayed({
                    dot_2.gone()
                    iv_error_2.gone()
                },3000)
                },2000)
            }
        }
        rl_check_3.clickDelay {
@@ -182,10 +190,11 @@
                act.rightCount++
                Log.e(TAG,"选择正确")
                transAnimation(cl_answer_3,voiceViews[questionIndex])
                resultViews[questionIndex].visible()
                resultViews[questionIndex].postDelayed({
                    resultViews[questionIndex].gone()
                },3000)
                val resultView = resultViews[questionIndex]
                resultView.visible()
                resultView.postDelayed({
                    resultView.gone()
                },2000)
                nowVoiceView = voiceViews[questionIndex]
                handler?.sendEmptyMessage(PLAY_RIGHT)
            }else{
@@ -196,9 +205,15 @@
                dot_3.postDelayed({
                    dot_3.gone()
                    iv_error_3.gone()
                },3000)
                },2000)
            }
        }
        isAutoPlaying = 1
        voiceViews.filterIndexed { index, constraintLayout ->
            val subject = list[index]
            constraintLayout.isEnabled&&subject.isQuestion == 1
        }.firstOrNull()?.callOnClick()
    }
@@ -206,6 +221,7 @@
     * 恢复答案和题目ui
     */
    fun recover(){
        right = true
        showVoiceUi()
        list.forEach { it.completed = false }
        recoverAnswer()
@@ -258,13 +274,13 @@
        }
        questionIndex = position
        if (questionIndex == 0||questionIndex == 2){
            iv2_answer_1.setImageResource(R.mipmap.voice_question)
            iv2_answer_2.setImageResource(R.mipmap.voice_question)
            iv2_answer_3.setImageResource(R.mipmap.voice_question)
            iv2_answer_1.setImageResource(R.mipmap.voice_question_2)
            iv2_answer_2.setImageResource(R.mipmap.voice_question_2)
            iv2_answer_3.setImageResource(R.mipmap.voice_question_2)
        }else{
            iv2_answer_1.setImageResource(R.mipmap.voice_answer)
            iv2_answer_2.setImageResource(R.mipmap.voice_answer)
            iv2_answer_3.setImageResource(R.mipmap.voice_answer)
            iv2_answer_1.setImageResource(R.mipmap.voice_answer_2)
            iv2_answer_2.setImageResource(R.mipmap.voice_answer_2)
            iv2_answer_3.setImageResource(R.mipmap.voice_answer_2)
        }
        rl_check_1.visible()
        rl_check_2.visible()
@@ -303,7 +319,7 @@
        val x = PropertyValuesHolder.ofFloat("translationX",0f,offx.toFloat())
        val y = PropertyValuesHolder.ofFloat("translationY",0f,offy.toFloat())
        val animator = ObjectAnimator.ofPropertyValuesHolder(v, x, y)
        animator.duration = 1000
        animator.duration = 500
        animator.interpolator = LinearInterpolator()
        animator.start()
        animator.addListener(object :Animator.AnimatorListener{
@@ -390,16 +406,33 @@
            }
        }
        if (list.filter { it.completed }.size == 2){ //全部作答,3秒后下一题
            handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
        if (isAutoPlaying in 1..2){
            if (voiceIndex in 0..3){
                cl_answer_1.callOnClick()
            }else if (voiceIndex == 4)
                cl_answer_2.callOnClick()
            else if (voiceIndex == 5)
                cl_answer_3.callOnClick()
            else if (voiceIndex == 6){
                isAutoPlaying = if (isAutoPlaying == 1) 0 else -1
            }
        }
        if (errorPlaying)
            errorPlaying = false
        if (rightPlaying){
        else if (rightPlaying){
            rightPlaying = false
            nowVoiceView?.callOnClick()
            list[questionIndex].completed = true
            recoverAnswer()
        }else if (list.filter { it.completed }.size == 2){ //全部作答,3秒后下一题
            handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒
        }else if (list.filter { it.completed }.size == 1&& isAutoPlaying == 0){//答完一题,自动播放下一题
            isAutoPlaying = 2
            voiceViews.filterIndexed { index, constraintLayout ->
                val subject = list[index]
                constraintLayout.isEnabled&&subject.isQuestion == 1
            }.lastOrNull()?.callOnClick()
        }
    }
app/src/main/java/com/dollearn/student/ui/home/adapter/IndexAdapter.kt
New file
@@ -0,0 +1,17 @@
package com.dollearn.student.ui.home.adapter
import android.widget.TextView
import cn.sinata.xldutils.adapter.HFRecyclerAdapter
import cn.sinata.xldutils.adapter.util.ViewHolder
import com.dollearn.student.R
import com.dollearn.student.network.entity.SortBean
import org.jetbrains.anko.textColorResource
import java.util.ArrayList
class IndexAdapter(indexList: ArrayList<SortBean>):HFRecyclerAdapter<SortBean>(indexList, R.layout.item_index) {
    override fun onBind(holder: ViewHolder, position: Int, data: SortBean) {
        val tv_sort = holder.bind<TextView>(R.id.tv_sort)
        tv_sort.text = (position+1).toString()
        tv_sort.textColorResource = if (data.status == 2) R.color.textColorGreen else if (data.status == 3) R.color.colorOrange else R.color.textColor99
    }
}
app/src/main/java/com/dollearn/student/utils/Const.kt
@@ -68,6 +68,8 @@
        const val START_TIMER = 0x0F //开始学习,计算时间
        const val STOP_TIMER = 0x11 //结束学习,计时停止
        const val RECOVERD = 0x12 //答题进度已恢复,可以走自动播放流程了
    }
app/src/main/res/drawable/bg_grey_2dp.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="2dp"/>
    <solid android:color="#D4D2CD"/>
</shape>
app/src/main/res/drawable/bg_orange_8dp.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="8dp"/>
    <gradient android:startColor="@color/colorDeepGreen" android:endColor="@color/colorDeepGreen" android:angle="270"/>
</shape>
app/src/main/res/drawable/bg_white_8dp_padding.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="4dp" android:bottom="4dp" android:left="4dp" android:right="4dp">
        <shape>
            <solid android:color="@color/white"/>
            <corners android:radius="8dp"/>
        </shape>
    </item>
</layer-list>
app/src/main/res/drawable/selector_bg_voice.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bg_blue_8dp" android:state_enabled="true"/>
    <item android:drawable="@drawable/bg_grey_8dp" android:state_enabled="false"/>
    <item android:drawable="@drawable/bg_white_8dp" android:state_enabled="true"/>
    <item android:drawable="@drawable/bg_white_8dp" android:state_enabled="false"/>
</selector>
app/src/main/res/drawable/selector_bg_white_grey.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bg_white_2dp" android:state_enabled="true"/>
    <item android:drawable="@drawable/bg_grey_2dp" android:state_enabled="false"/>
</selector>
app/src/main/res/drawable/selector_enable_choose.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@drawable/bg_blue_line_8dp"/>
    <item android:state_selected="true" android:drawable="@drawable/bg_white_8dp"/>
    <item android:state_selected="false" android:drawable="@drawable/bg_blue_line_grey_8dp"/>
</selector>
app/src/main/res/layout/activity_listen.xml
@@ -9,19 +9,20 @@
        android:id="@+id/tv_progress"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBaseline_toBaselineOf="@id/tv_exit"
        app:layout_constraintTop_toTopOf="@id/tv_exit"
        app:layout_constraintBottom_toBottomOf="@id/tv_exit"
        android:gravity="center"
        android:textStyle="bold"
        android:textSize="14sp"
        android:textColor="@color/textColor"
        android:text="0/0"/>
        android:text="已完成:0/0\n正确率:0%"/>
    <TextView
        android:id="@+id/tv_exit"
        android:layout_width="124dp"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:textColor="@color/white"
        android:background="@drawable/bg_blue_4dp"
        android:textColor="@color/colorPrimary"
        android:background="@drawable/bg_blue_line_4dp"
        android:text="退出"
        android:paddingVertical="10dp"
        android:gravity="center"
@@ -36,18 +37,27 @@
        android:textSize="14sp"
        android:textColor="@color/colorPrimary"
        android:background="@drawable/bg_blue_line_4dp"
        android:text="上一题"
        android:text="重新开始"
        android:paddingVertical="10dp"
        android:visibility="gone"
        android:gravity="center"
        app:layout_constraintEnd_toStartOf="@id/tv_progress"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="12dp"
        android:textStyle="bold" />
    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="25dp"
        android:id="@+id/rv_index"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_marginBottom="10dp"
        android:background="@color/white"
        android:elevation="2dp"
        app:layout_constraintBottom_toTopOf="@id/tv_progress"/>
    <com.dollearn.student.views.NoScrollViewPager
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@+id/view_pager"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@id/tv_exit"/>
        app:layout_constraintBottom_toTopOf="@id/rv_index"/>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/layout/activity_login.xml
@@ -69,9 +69,9 @@
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="132dp"
        android:layout_marginBottom="32dp"
        android:text="登录"
        app:layout_constraintTop_toBottomOf="@id/et_code" />
        app:layout_constraintBottom_toBottomOf="parent" />
    <CheckBox
app/src/main/res/layout/fragment_choose_voice.xml
@@ -12,20 +12,20 @@
        android:id="@+id/center"
        app:layout_constraintGuide_percent="0.5"
        android:orientation="vertical"/>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_1"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:padding="4dp"
        android:elevation="2dp"
        android:padding="8dp"
        app:layout_constraintDimensionRatio="333:259"
        android:layout_marginTop="96dp"
        app:layout_constraintHorizontal_chainStyle="packed"
        android:background="@drawable/bg_white_8dp"
        android:background="@drawable/bg_white_8dp_padding"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toStartOf="@id/center"
        android:layout_marginEnd="11dp"
        android:layout_marginBottom="8dp"
        android:layout_marginBottom="4dp"
        app:layout_constraintBottom_toTopOf="@id/cl_3">
        <TextView
            android:layout_width="match_parent"
@@ -54,12 +54,12 @@
            android:elevation="2dp"
            android:visibility="gone"
            android:id="@+id/cl_voice_end_1"
            android:background="@drawable/bg_blue_8dp">
            android:background="@color/white">
            <ImageView
                android:id="@+id/iv1_1_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_chainStyle="packed"
@@ -70,7 +70,7 @@
                android:id="@+id/iv2_1_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_1_end"
@@ -80,7 +80,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -93,12 +93,11 @@
        android:id="@+id/cl_2"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:elevation="2dp"
        app:layout_constraintDimensionRatio="333:259"
        android:padding="4dp"
        android:padding="8dp"
        app:layout_constraintStart_toEndOf="@id/center"
        android:layout_marginStart="8dp"
        android:background="@drawable/bg_white_8dp"
        android:background="@drawable/bg_white_8dp_padding"
        app:layout_constraintTop_toTopOf="@id/cl_1"
        app:layout_constraintBottom_toBottomOf="@id/cl_1">
@@ -129,12 +128,12 @@
            android:elevation="2dp"
            android:visibility="gone"
            android:id="@+id/cl_voice_end_2"
            android:background="@drawable/bg_blue_8dp">
            android:background="@color/white">
            <ImageView
                android:id="@+id/iv1_2_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintHorizontal_chainStyle="packed"
                android:layout_marginEnd="52dp"
@@ -145,7 +144,7 @@
                android:id="@+id/iv2_2_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_2_end"
@@ -155,7 +154,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -168,12 +167,11 @@
        android:id="@+id/cl_3"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:padding="4dp"
        android:elevation="2dp"
        android:padding="8dp"
        android:layout_marginBottom="10dp"
        app:layout_constraintStart_toStartOf="@id/cl_1"
        app:layout_constraintEnd_toEndOf="@id/cl_1"
        android:background="@drawable/bg_white_8dp"
        android:background="@drawable/bg_white_8dp_padding"
        app:layout_constraintTop_toBottomOf="@id/cl_1"
        app:layout_constraintBottom_toBottomOf="parent">
@@ -204,12 +202,12 @@
            android:elevation="2dp"
            android:visibility="gone"
            android:id="@+id/cl_voice_end_3"
            android:background="@drawable/bg_blue_8dp">
            android:background="@color/white">
            <ImageView
                android:id="@+id/iv1_3_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
@@ -220,7 +218,7 @@
                android:id="@+id/iv2_3_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_3_end"
@@ -230,7 +228,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -243,11 +241,10 @@
        android:id="@+id/cl_4"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:elevation="2dp"
        android:padding="4dp"
        android:padding="8dp"
        app:layout_constraintStart_toStartOf="@id/cl_2"
        app:layout_constraintEnd_toEndOf="@id/cl_2"
        android:background="@drawable/bg_white_8dp"
        android:background="@drawable/bg_white_8dp_padding"
        app:layout_constraintTop_toTopOf="@id/cl_3"
        app:layout_constraintBottom_toBottomOf="@id/cl_3">
@@ -278,12 +275,12 @@
            android:elevation="2dp"
            android:visibility="gone"
            android:id="@+id/cl_voice_end_4"
            android:background="@drawable/bg_blue_8dp">
            android:background="@color/white">
            <ImageView
                android:id="@+id/iv1_4_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
@@ -294,7 +291,7 @@
                android:id="@+id/iv2_4_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_4_end"
@@ -305,7 +302,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -318,19 +315,19 @@
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/rl_2"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="230dp"
        android:layout_height="40dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_2s"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -341,7 +338,7 @@
            android:id="@+id/iv2_2s"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_2s"
@@ -358,20 +355,20 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="230dp"
        android:layout_height="40dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"
        android:elevation="2dp"
        android:id="@+id/cl_voice2"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -382,7 +379,7 @@
            android:id="@+id/iv2_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_2"
@@ -392,7 +389,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -413,18 +410,18 @@
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/rl_1"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="230dp"
        android:layout_height="40dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@id/rl_2"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_1s"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -435,7 +432,7 @@
            android:id="@+id/iv2_1s"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_1s"
@@ -451,19 +448,19 @@
            app:layout_constraintEnd_toEndOf="parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="230dp"
        android:layout_height="40dp"
        app:layout_constraintStart_toStartOf="@id/rl_1"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"
        android:elevation="2dp"
        android:id="@+id/cl_voice1"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -474,7 +471,7 @@
            android:id="@+id/iv2_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_1"
@@ -484,7 +481,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -504,18 +501,18 @@
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/rl_3"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="230dp"
        android:layout_height="40dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@id/rl_2"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_3s"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -526,7 +523,7 @@
            android:id="@+id/iv2_3s"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_3s"
@@ -543,19 +540,19 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="230dp"
        android:layout_height="40dp"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"
        app:layout_constraintStart_toStartOf="@id/rl_3"
        android:elevation="2dp"
        android:id="@+id/cl_voice3"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -566,7 +563,7 @@
            android:id="@+id/iv2_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_3"
@@ -576,7 +573,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -600,8 +597,8 @@
        android:layout_marginStart="10dp"
        app:layout_constraintStart_toEndOf="@id/rl_1">
        <RelativeLayout
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/bg_blue_line_8dp"
            android:visibility="gone"
            android:id="@+id/rl_check_1">
@@ -622,8 +619,8 @@
        android:layout_marginStart="10dp"
        app:layout_constraintStart_toEndOf="@id/rl_2">
        <RelativeLayout
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/bg_blue_line_8dp"
            android:visibility="gone"
            android:id="@+id/rl_check_2">
@@ -644,8 +641,8 @@
        android:layout_marginStart="10dp"
        app:layout_constraintStart_toEndOf="@id/rl_3">
        <RelativeLayout
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/bg_blue_line_8dp"
            android:visibility="gone"
            android:id="@+id/rl_check_3">
app/src/main/res/layout/fragment_include.xml
@@ -12,22 +12,71 @@
        android:layout_height="0dp"
        android:padding="4dp"
        android:elevation="2dp"
        android:layout_marginTop="14dp"
        android:layout_marginTop="24dp"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintVertical_chainStyle="packed"
        android:background="@drawable/bg_white_8dp"
        app:layout_constraintTop_toBottomOf="@id/cl_voice1"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@id/cl_4"
        android:layout_marginBottom="130dp"
        app:layout_constraintDimensionRatio="3:2"
        android:layout_marginBottom="100dp"
        app:layout_constraintDimensionRatio="296:244"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@id/cl_2"
        android:layout_marginEnd="10dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="0dp"
            android:layout_height="40dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:id="@+id/cl_voice1">
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:id="@+id/cl_voice1_real"
                android:visibility="gone"
                android:layout_height="match_parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:background="@drawable/selector_bg_voice">
                <ImageView
                    android:id="@+id/iv1_1"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/yuyin_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginStart="25dp"/>
                <ImageView
                    android:id="@+id/iv2_1"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/play_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="23dp"/>
                <ImageView
                    android:id="@+id/iv_playing_1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:visibility="gone"
                    android:src="@mipmap/bofangzhong_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
            android:id="@+id/iv_1"
            app:actualImageScaleType="centerCrop"
            android:layout_marginTop="40dp"
            android:layout_height="match_parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
@@ -44,11 +93,60 @@
        app:layout_constraintStart_toEndOf="@id/cl_1"
        app:layout_constraintEnd_toStartOf="@id/cl_3"
        android:layout_marginEnd="10dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="0dp"
            android:layout_height="40dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:id="@+id/cl_voice2">
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:id="@+id/cl_voice2_real"
                android:visibility="gone"
                android:layout_height="match_parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:background="@drawable/selector_bg_voice">
                <ImageView
                    android:id="@+id/iv1_2"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/yuyin_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginStart="25dp"/>
                <ImageView
                    android:id="@+id/iv2_2"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/play_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="23dp"/>
                <ImageView
                    android:id="@+id/iv_playing_2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:visibility="gone"
                    android:src="@mipmap/bofangzhong_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
            android:id="@+id/iv_2"
            app:actualImageScaleType="centerCrop"
            android:layout_marginTop="40dp"
            android:layout_height="match_parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
@@ -64,6 +162,53 @@
        app:layout_constraintBottom_toBottomOf="@id/cl_1"
        app:layout_constraintStart_toEndOf="@id/cl_2"
        app:layout_constraintEnd_toEndOf="parent">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            app:layout_constraintTop_toTopOf="parent"
            android:id="@+id/cl_voice3">
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:id="@+id/cl_voice3_real"
                android:visibility="gone"
                android:layout_height="match_parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:background="@drawable/selector_bg_voice">
                <ImageView
                    android:id="@+id/iv1_3"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/yuyin_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginStart="25dp"/>
                <ImageView
                    android:id="@+id/iv2_3"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/play_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="23dp"/>
                <ImageView
                    android:id="@+id/iv_playing_3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:visibility="gone"
                    android:src="@mipmap/bofangzhong_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
@@ -71,6 +216,7 @@
            app:placeholderImage="@color/grey_f1"
            app:actualImageScaleType="centerCrop"
            app:failureImage="@color/grey_f1"
            android:layout_marginTop="40dp"
            android:layout_height="match_parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
@@ -82,17 +228,65 @@
        android:layout_height="0dp"
        android:padding="4dp"
        android:elevation="2dp"
        android:layout_marginBottom="5dp"
        android:layout_marginBottom="12dp"
        app:layout_constraintTop_toBottomOf="@id/cl_1"
        android:background="@drawable/bg_white_8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="@id/cl_1"
        app:layout_constraintEnd_toEndOf="@id/cl_1">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/cl_voice4"
            app:layout_constraintTop_toTopOf="parent">
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:id="@+id/cl_voice4_real"
                android:visibility="gone"
                android:layout_height="match_parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:background="@drawable/selector_bg_voice">
                <ImageView
                    android:id="@+id/iv1_4"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/yuyin_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginStart="25dp"/>
                <ImageView
                    android:id="@+id/iv2_4"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/play_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="23dp"/>
                <ImageView
                    android:id="@+id/iv_playing_4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:visibility="gone"
                    android:src="@mipmap/bofangzhong_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
            android:id="@+id/iv_4"
            app:actualImageScaleType="centerCrop"
            android:layout_marginTop="40dp"
            android:layout_height="match_parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
@@ -109,12 +303,60 @@
        app:layout_constraintTop_toTopOf="@id/cl_4"
        app:layout_constraintStart_toStartOf="@id/cl_2"
        app:layout_constraintEnd_toEndOf="@id/cl_2">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/cl_voice5"
            app:layout_constraintTop_toTopOf="parent">
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:id="@+id/cl_voice5_real"
                android:visibility="gone"
                android:layout_height="match_parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:background="@drawable/selector_bg_voice">
                <ImageView
                    android:id="@+id/iv1_5"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/yuyin_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginStart="25dp"/>
                <ImageView
                    android:id="@+id/iv2_5"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/play_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="23dp"/>
                <ImageView
                    android:id="@+id/iv_playing_5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:visibility="gone"
                    android:src="@mipmap/bofangzhong_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
            android:id="@+id/iv_5"
            app:placeholderImage="@color/grey_f1"
            app:actualImageScaleType="centerCrop"
            android:layout_marginTop="40dp"
            app:failureImage="@color/grey_f1"
            android:layout_height="match_parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
@@ -131,333 +373,69 @@
        app:layout_constraintTop_toTopOf="@id/cl_4"
        app:layout_constraintStart_toStartOf="@id/cl_3"
        app:layout_constraintEnd_toEndOf="@id/cl_3">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/cl_voice6"
            app:layout_constraintTop_toTopOf="parent">
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:id="@+id/cl_voice6_real"
                android:visibility="gone"
                android:layout_height="match_parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:background="@drawable/selector_bg_voice">
                <ImageView
                    android:id="@+id/iv1_6"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/yuyin_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginStart="25dp"/>
                <ImageView
                    android:id="@+id/iv2_6"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginVertical="6dp"
                    android:src="@mipmap/play_2"
                    app:layout_constraintTop_toTopOf="parent"
                    android:layout_marginEnd="23dp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent" />
                <ImageView
                    android:id="@+id/iv_playing_6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:visibility="gone"
                    android:src="@mipmap/bofangzhong_2"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
            android:id="@+id/iv_6"
            app:placeholderImage="@color/grey_f1"
            app:actualImageScaleType="centerCrop"
            android:layout_marginTop="40dp"
            app:failureImage="@color/grey_f1"
            android:layout_height="match_parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintStart_toStartOf="@id/cl_1"
        app:layout_constraintEnd_toEndOf="@id/cl_1"
        app:layout_constraintDimensionRatio="3:1"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="15dp"
        android:layout_marginStart="4dp"
        android:id="@+id/cl_voice1"
        android:layout_marginEnd="40dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice1_real"
            android:visibility="gone"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:background="@drawable/selector_bg_voice">
            <ImageView
                android:id="@+id/iv1_1"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/yuyin"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:layout_marginStart="25dp"/>
            <ImageView
                android:id="@+id/iv2_1"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/play"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                android:layout_marginEnd="23dp"/>
            <ImageView
                android:id="@+id/iv_playing_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintStart_toStartOf="@id/cl_2"
        app:layout_constraintEnd_toEndOf="@id/cl_2"
        app:layout_constraintDimensionRatio="3:1"
        app:layout_constraintTop_toTopOf="@id/cl_voice1"
        android:id="@+id/cl_voice2"
        android:layout_marginStart="4dp"
        android:layout_marginEnd="40dp">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:id="@+id/cl_voice2_real"
        android:visibility="gone"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:background="@drawable/selector_bg_voice">
        <ImageView
            android:id="@+id/iv1_2"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginVertical="6dp"
            android:src="@mipmap/yuyin"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="25dp"/>
        <ImageView
            android:id="@+id/iv2_2"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginVertical="6dp"
            android:src="@mipmap/play"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="23dp"/>
        <ImageView
            android:id="@+id/iv_playing_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintStart_toStartOf="@id/cl_3"
        app:layout_constraintEnd_toEndOf="@id/cl_3"
        app:layout_constraintDimensionRatio="3:1"
        app:layout_constraintTop_toTopOf="@id/cl_voice1"
        android:id="@+id/cl_voice3"
        android:layout_marginStart="4dp"
        android:layout_marginEnd="40dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice3_real"
            android:visibility="gone"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:background="@drawable/selector_bg_voice">
            <ImageView
                android:id="@+id/iv1_3"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/yuyin"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:layout_marginStart="25dp"/>
            <ImageView
                android:id="@+id/iv2_3"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/play"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                android:layout_marginEnd="23dp"/>
            <ImageView
                android:id="@+id/iv_playing_3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintStart_toStartOf="@id/cl_4"
        app:layout_constraintEnd_toEndOf="@id/cl_4"
        app:layout_constraintDimensionRatio="3:1"
        app:layout_constraintBottom_toTopOf="@id/cl_4"
        android:layout_marginBottom="14dp"
        android:id="@+id/cl_voice4"
        android:layout_marginStart="4dp"
        android:layout_marginEnd="40dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice4_real"
            android:visibility="gone"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:background="@drawable/selector_bg_voice">
            <ImageView
                android:id="@+id/iv1_4"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/yuyin"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:layout_marginStart="25dp"/>
            <ImageView
                android:id="@+id/iv2_4"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/play"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                android:layout_marginEnd="23dp"/>
            <ImageView
                android:id="@+id/iv_playing_4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintStart_toStartOf="@id/cl_5"
        app:layout_constraintEnd_toEndOf="@id/cl_5"
        app:layout_constraintDimensionRatio="3:1"
        android:layout_marginEnd="40dp"
        app:layout_constraintTop_toTopOf="@id/cl_voice4"
        android:id="@+id/cl_voice5"
        android:layout_marginStart="4dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice5_real"
            android:visibility="gone"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:background="@drawable/selector_bg_voice">
            <ImageView
                android:id="@+id/iv1_5"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/yuyin"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:layout_marginStart="25dp"/>
            <ImageView
                android:id="@+id/iv2_5"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/play"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                android:layout_marginEnd="23dp"/>
            <ImageView
                android:id="@+id/iv_playing_5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintStart_toStartOf="@id/cl_6"
        app:layout_constraintEnd_toEndOf="@id/cl_6"
        app:layout_constraintDimensionRatio="3:1"
        android:layout_marginEnd="40dp"
        app:layout_constraintTop_toTopOf="@id/cl_voice4"
        android:id="@+id/cl_voice6"
        android:layout_marginStart="4dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice6_real"
            android:visibility="gone"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:background="@drawable/selector_bg_voice">
            <ImageView
                android:id="@+id/iv1_6"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/yuyin"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:layout_marginStart="25dp"/>
            <ImageView
                android:id="@+id/iv2_6"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginVertical="6dp"
                android:src="@mipmap/play"
                app:layout_constraintTop_toTopOf="parent"
                android:layout_marginEnd="23dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent" />
            <ImageView
                android:id="@+id/iv_playing_6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <com.facebook.drawee.view.SimpleDraweeView
        android:layout_width="85dp"
        android:layout_height="52dp"
        android:layout_width="96dp"
        android:layout_height="60dp"
        android:id="@+id/iv_answer_3"
        app:failureImage="@null"
        app:layout_constraintStart_toStartOf="@id/cl_answer_3"
@@ -467,8 +445,8 @@
        app:roundedCornerRadius="8dp"/>
    <com.facebook.drawee.view.SimpleDraweeView
        android:layout_width="85dp"
        android:layout_height="52dp"
        android:layout_width="96dp"
        android:layout_height="60dp"
        android:id="@+id/iv_answer_2"
        app:failureImage="@null"
        android:elevation="2dp"
@@ -478,8 +456,8 @@
        app:roundedCornerRadius="8dp"/>
    <com.facebook.drawee.view.SimpleDraweeView
        android:layout_width="85dp"
        android:layout_height="52dp"
        android:layout_width="96dp"
        android:layout_height="60dp"
        android:id="@+id/iv_answer_1"
        android:elevation="2dp"
        app:actualImageScaleType="centerCrop"
@@ -489,14 +467,14 @@
        app:roundedCornerRadius="8dp"/>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="85dp"
        android:layout_height="52dp"
        android:layout_width="96dp"
        android:layout_height="60dp"
        android:id="@+id/cl_answer_3"
        app:layout_constraintEnd_toEndOf="@id/cl_3"
        android:elevation="2dp"
        app:layout_constraintTop_toBottomOf="@id/cl_3"
        android:layout_marginEnd="23dp"
        android:layout_marginTop="6dp">
        android:layout_marginTop="16dp">
        <ImageView
            android:id="@+id/iv_error_3"
            android:layout_width="42dp"
@@ -519,14 +497,14 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="85dp"
        android:layout_height="52dp"
        android:layout_width="96dp"
        android:layout_height="60dp"
        android:id="@+id/cl_answer_2"
        android:elevation="2dp"
        app:layout_constraintEnd_toStartOf="@id/cl_answer_3"
        app:layout_constraintTop_toBottomOf="@id/cl_3"
        android:layout_marginEnd="5dp"
        android:layout_marginTop="6dp">
        android:layout_marginTop="16dp">
        <ImageView
            android:id="@+id/iv_error_2"
            android:layout_width="42dp"
@@ -549,14 +527,14 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="85dp"
        android:layout_height="52dp"
        android:layout_width="96dp"
        android:layout_height="60dp"
        android:id="@+id/cl_answer_1"
        android:elevation="2dp"
        app:layout_constraintEnd_toStartOf="@id/cl_answer_2"
        app:layout_constraintTop_toBottomOf="@id/cl_3"
        android:layout_marginEnd="5dp"
        android:layout_marginTop="6dp">
        android:layout_marginTop="16dp">
        <ImageView
            android:id="@+id/iv_error_1"
            android:layout_width="42dp"
app/src/main/res/layout/fragment_listen.xml
@@ -31,7 +31,7 @@
        <View
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@color/page_bg"
            android:background="@color/white"
            android:id="@+id/top_1"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
@@ -62,7 +62,7 @@
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/top_2"
            android:background="@color/page_bg"
            android:background="@color/white"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
@@ -92,7 +92,7 @@
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/top_3"
            android:background="@color/page_bg"
            android:background="@color/white"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
@@ -126,7 +126,7 @@
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/top_4"
            android:background="@color/page_bg"
            android:background="@color/white"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
@@ -141,15 +141,15 @@
    </androidx.constraintlayout.motion.widget.MotionLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="230dp"
        android:layout_height="40dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"
        android:elevation="2dp"
        android:id="@+id/cl_voice"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <androidx.constraintlayout.widget.Guideline
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
@@ -160,7 +160,7 @@
            android:id="@+id/iv1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@id/center_v"
@@ -169,7 +169,7 @@
            android:id="@+id/iv2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/center_v"
@@ -179,7 +179,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
app/src/main/res/layout/fragment_match.xml
@@ -16,25 +16,25 @@
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/line1"
        app:layout_constraintGuide_percent="0.2"
        app:layout_constraintGuide_percent="0.15"
        android:orientation="vertical"/>
    <androidx.constraintlayout.widget.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/line2"
        app:layout_constraintGuide_percent="0.4"
        app:layout_constraintGuide_percent="0.38"
        android:orientation="vertical"/>
    <androidx.constraintlayout.widget.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/line3"
        app:layout_constraintGuide_percent="0.6"
        app:layout_constraintGuide_percent="0.62"
        android:orientation="vertical"/>
    <androidx.constraintlayout.widget.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/line4"
        app:layout_constraintGuide_percent="0.8"
        app:layout_constraintGuide_percent="0.85"
        android:orientation="vertical"/>
    <TextView
        android:layout_width="match_parent"
@@ -44,6 +44,7 @@
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="70dp"
        android:textSize="16sp"
        android:visibility="gone"
        android:textColor="@color/black"
        android:textStyle="bold"/>
    <androidx.constraintlayout.motion.widget.MotionLayout
@@ -65,7 +66,7 @@
        <View
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@color/page_bg"
            android:background="@color/match_gray"
            android:id="@+id/top_1"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
@@ -91,25 +92,25 @@
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice_end_1"
            android:background="@color/colorPrimary"
            android:background="@color/white"
            android:visibility="gone"
            android:layout_height="match_parent">
            <ImageView
                android:id="@+id/iv1_1_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toStartOf="@id/iv2_1_end"
                app:layout_constraintHorizontal_chainStyle="packed"
                android:layout_marginEnd="52dp"/>
                android:layout_marginEnd="40dp"/>
            <ImageView
                android:id="@+id/iv2_1_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_1_end"
@@ -119,7 +120,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -145,7 +146,7 @@
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/top_2"
            android:background="@color/page_bg"
            android:background="@color/match_gray"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
@@ -169,25 +170,25 @@
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice_end_2"
            android:background="@color/colorPrimary"
            android:background="@color/white"
            android:visibility="gone"
            android:layout_height="match_parent">
            <ImageView
                android:id="@+id/iv1_2_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toStartOf="@id/iv2_2_end"
                app:layout_constraintHorizontal_chainStyle="packed"
                android:layout_marginEnd="52dp"/>
                android:layout_marginEnd="40dp"/>
            <ImageView
                android:id="@+id/iv2_2_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_2_end"
@@ -197,7 +198,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -224,7 +225,7 @@
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/top_3"
            android:background="@color/page_bg"
            android:background="@color/match_gray"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
@@ -255,25 +256,25 @@
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice_end_3"
            android:background="@color/colorPrimary"
            android:background="@color/white"
            android:visibility="gone"
            android:layout_height="match_parent">
            <ImageView
                android:id="@+id/iv1_3_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toStartOf="@id/iv2_3_end"
                app:layout_constraintHorizontal_chainStyle="packed"
                android:layout_marginEnd="52dp"/>
                android:layout_marginEnd="40dp"/>
            <ImageView
                android:id="@+id/iv2_3_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_3_end"
@@ -283,7 +284,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -309,7 +310,7 @@
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:id="@+id/top_4"
            android:background="@color/page_bg"
            android:background="@color/match_gray"
            app:layout_constraintTop_toTopOf="parent"/>
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="match_parent"
@@ -336,25 +337,25 @@
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:id="@+id/cl_voice_end_4"
            android:background="@color/colorPrimary"
            android:background="@color/white"
            android:visibility="gone"
            android:layout_height="match_parent">
            <ImageView
                android:id="@+id/iv1_4_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/yuyin"
                android:src="@mipmap/yuyin_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toStartOf="@id/iv2_4_end"
                app:layout_constraintHorizontal_chainStyle="packed"
                android:layout_marginEnd="52dp"/>
                android:layout_marginEnd="40dp"/>
            <ImageView
                android:id="@+id/iv2_4_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/play"
                android:src="@mipmap/play_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toEndOf="@id/iv1_4_end"
@@ -364,7 +365,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:src="@mipmap/bofangzhong"
                android:src="@mipmap/bofangzhong_2"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
@@ -375,30 +376,30 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="200dp"
        android:layout_height="40dp"
        app:layout_constraintTop_toTopOf="parent"
        android:id="@+id/cl_voice_1"
        app:layout_constraintStart_toStartOf="@id/line1"
        app:layout_constraintEnd_toEndOf="@id/line1"
        android:layout_marginTop="15dp"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toStartOf="@id/iv2_1"
            app:layout_constraintHorizontal_chainStyle="packed"
            android:layout_marginEnd="52dp"/>
            android:layout_marginEnd="40dp"/>
        <ImageView
            android:id="@+id/iv2_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_1"
@@ -407,7 +408,7 @@
            android:id="@+id/iv_playing_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="invisible"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
@@ -415,30 +416,30 @@
            app:layout_constraintStart_toStartOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="200dp"
        android:layout_height="40dp"
        app:layout_constraintTop_toTopOf="parent"
        android:id="@+id/cl_voice_2"
        app:layout_constraintStart_toStartOf="@id/line2"
        app:layout_constraintEnd_toEndOf="@id/line2"
        android:layout_marginTop="15dp"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toStartOf="@id/iv2_2"
            app:layout_constraintHorizontal_chainStyle="packed"
            android:layout_marginEnd="52dp"/>
            android:layout_marginEnd="40dp"/>
        <ImageView
            android:id="@+id/iv2_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_2"
@@ -448,37 +449,37 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="200dp"
        android:layout_height="40dp"
        app:layout_constraintTop_toTopOf="parent"
        android:id="@+id/cl_voice_3"
        app:layout_constraintStart_toStartOf="@id/line3"
        app:layout_constraintEnd_toEndOf="@id/line3"
        android:layout_marginTop="15dp"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toStartOf="@id/iv2_3"
            app:layout_constraintHorizontal_chainStyle="packed"
            android:layout_marginEnd="52dp"/>
            android:layout_marginEnd="40dp"/>
        <ImageView
            android:id="@+id/iv2_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_3"
@@ -488,38 +489,38 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="200dp"
        android:layout_height="40dp"
        app:layout_constraintTop_toTopOf="parent"
        
        android:id="@+id/cl_voice_4"
        app:layout_constraintStart_toStartOf="@id/line4"
        app:layout_constraintEnd_toEndOf="@id/line4"
        android:layout_marginTop="15dp"
        android:background="@drawable/bg_blue_8dp">
        android:background="@drawable/bg_white_8dp">
        <ImageView
            android:id="@+id/iv1_4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toStartOf="@id/iv2_4"
            app:layout_constraintHorizontal_chainStyle="packed"
            android:layout_marginEnd="52dp"/>
            android:layout_marginEnd="40dp"/>
        <ImageView
            android:id="@+id/iv2_4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@id/iv1_4"
@@ -529,7 +530,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -537,12 +538,12 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <LinearLayout
        android:id="@+id/ll_2"
        android:layout_width="159dp"
        android:layout_width="200dp"
        android:layout_marginTop="15dp"
        app:layout_constraintStart_toStartOf="@id/line2"
        app:layout_constraintEnd_toStartOf="@id/line2"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="52dp">
        android:layout_height="40dp">
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
@@ -552,12 +553,12 @@
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_3"
        android:layout_width="159dp"
        android:layout_width="200dp"
        android:layout_marginTop="15dp"
        app:layout_constraintStart_toStartOf="@id/line3"
        app:layout_constraintEnd_toStartOf="@id/line3"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="52dp">
        android:layout_height="40dp">
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
@@ -567,12 +568,12 @@
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_4"
        android:layout_width="159dp"
        android:layout_width="200dp"
        android:layout_marginTop="15dp"
        app:layout_constraintStart_toStartOf="@id/line4"
        app:layout_constraintEnd_toStartOf="@id/line4"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="52dp">
        android:layout_height="40dp">
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
@@ -582,12 +583,12 @@
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_1"
        android:layout_width="159dp"
        android:layout_width="200dp"
        android:layout_marginTop="15dp"
        app:layout_constraintStart_toStartOf="@id/line1"
        app:layout_constraintEnd_toStartOf="@id/line1"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_height="52dp">
        android:layout_height="40dp">
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
app/src/main/res/layout/fragment_q_a.xml
@@ -13,20 +13,59 @@
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_1"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginTop="96dp"
        android:layout_marginEnd="30dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/bg_white_8dp"
        android:padding="4dp"
        app:layout_constraintBottom_toTopOf="@id/cl_3"
        app:layout_constraintDimensionRatio="341:244"
        app:layout_constraintEnd_toStartOf="@id/center"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_chainStyle="packed">
        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/iv_1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="40dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/iv_right_1"
            android:src="@mipmap/successs"
            android:visibility="gone"
            android:layout_marginTop="30dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_voice_1"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_marginTop="24dp"
        android:background="@drawable/bg_blue_8dp"
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:background="@drawable/bg_white_8dp"
        app:layout_constraintTop_toTopOf="@id/cl_1"
        app:layout_constraintStart_toStartOf="@id/cl_1"
        app:layout_constraintTop_toTopOf="parent">
        app:layout_constraintEnd_toEndOf="@id/cl_1"
        android:layout_margin="4dp">
        <ImageView
            android:id="@+id/iv1_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -37,7 +76,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="20dp"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -47,7 +86,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_question"
            android:src="@mipmap/voice_question_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -56,7 +95,7 @@
            android:id="@+id/iv_playing_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -65,57 +104,56 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_1"
        android:id="@+id/cl_3"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginTop="96dp"
        android:layout_marginEnd="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="11dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/bg_white_8dp"
        android:padding="4dp"
        app:layout_constraintBottom_toTopOf="@id/cl_voice_3"
        app:layout_constraintDimensionRatio="333:259"
        app:layout_constraintEnd_toStartOf="@id/center"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_chainStyle="packed">
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="341:244"
        app:layout_constraintStart_toStartOf="@id/cl_1"
        app:layout_constraintTop_toBottomOf="@id/cl_1">
        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/iv_1"
            android:id="@+id/iv_3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
            android:layout_marginTop="40dp"
            app:actualImageScaleType="centerCrop" />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/iv_right_1"
            android:id="@+id/iv_right_3"
            android:src="@mipmap/successs"
            android:visibility="gone"
            android:layout_marginTop="30dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_voice_3"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_marginTop="8dp"
        android:background="@drawable/selector_bg_voice"
        app:layout_constraintBottom_toTopOf="@id/cl_3"
        app:layout_constraintStart_toStartOf="@id/cl_3"
        app:layout_constraintTop_toBottomOf="@id/cl_1">
        android:layout_width="0dp"
        android:layout_height="40dp"
        app:layout_constraintTop_toTopOf="@id/cl_3"
        app:layout_constraintEnd_toEndOf="@id/cl_3"
        android:layout_margin="4dp"
        android:background="@drawable/selector_bg_white_grey"
        app:layout_constraintStart_toStartOf="@id/cl_3">
        <ImageView
            android:id="@+id/iv1_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -126,7 +164,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="20dp"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -136,7 +174,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_question"
            android:src="@mipmap/voice_question_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -145,7 +183,7 @@
            android:id="@+id/iv_playing_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -154,90 +192,6 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_3"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="11dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/bg_white_8dp"
        android:padding="4dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="333:259"
        app:layout_constraintStart_toStartOf="@id/cl_1"
        app:layout_constraintTop_toBottomOf="@id/cl_voice_3">
        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/iv_3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:actualImageScaleType="centerCrop" />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/iv_right_3"
            android:src="@mipmap/successs"
            android:visibility="gone"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_voice_2"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_marginTop="24dp"
        android:background="@drawable/bg_blue_8dp"
        app:layout_constraintStart_toStartOf="@id/cl_2"
        app:layout_constraintTop_toTopOf="parent">
        <ImageView
            android:id="@+id/iv1_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <ImageView
            android:id="@+id/iv2_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="20dp"
            android:src="@mipmap/play"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <ImageView
            android:id="@+id/iv3_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_answer"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <ImageView
            android:id="@+id/iv_playing_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_2"
@@ -248,13 +202,14 @@
        
        android:padding="4dp"
        app:layout_constraintBottom_toBottomOf="@id/cl_1"
        app:layout_constraintDimensionRatio="333:259"
        app:layout_constraintDimensionRatio="341:244"
        app:layout_constraintStart_toEndOf="@id/center"
        app:layout_constraintTop_toTopOf="@id/cl_1">
        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/iv_2"
            android:layout_width="match_parent"
            android:layout_marginTop="40dp"
            android:layout_height="match_parent"
            app:actualImageScaleType="centerCrop" />
@@ -263,12 +218,67 @@
            android:layout_height="wrap_content"
            android:id="@+id/iv_right_2"
            android:src="@mipmap/successs"
            android:layout_marginTop="30dp"
            android:visibility="gone"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_voice_2"
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:background="@drawable/bg_white_8dp"
        app:layout_constraintTop_toTopOf="@id/cl_2"
        app:layout_constraintStart_toStartOf="@id/cl_2"
        app:layout_constraintEnd_toEndOf="@id/cl_2"
        android:layout_margin="4dp">
        <ImageView
            android:id="@+id/iv1_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <ImageView
            android:id="@+id/iv2_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="20dp"
            android:src="@mipmap/play_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <ImageView
            android:id="@+id/iv3_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_answer_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <ImageView
            android:id="@+id/iv_playing_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_4"
@@ -279,13 +289,14 @@
        
        android:padding="4dp"
        app:layout_constraintBottom_toBottomOf="@id/cl_3"
        app:layout_constraintDimensionRatio="333:259"
        app:layout_constraintDimensionRatio="341:244"
        app:layout_constraintStart_toEndOf="@id/center"
        app:layout_constraintTop_toTopOf="@id/cl_3">
        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/iv_4"
            android:layout_width="match_parent"
            android:layout_marginTop="40dp"
            android:layout_height="match_parent"
            app:actualImageScaleType="centerCrop" />
@@ -295,26 +306,28 @@
            android:id="@+id/iv_right_4"
            android:src="@mipmap/successs"
            android:visibility="gone"
            android:layout_marginTop="30dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_voice_4"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:background="@drawable/selector_bg_voice"
        android:layout_width="0dp"
        app:layout_constraintStart_toStartOf="@id/cl_4"
        app:layout_constraintTop_toTopOf="@id/cl_voice_3">
        app:layout_constraintEnd_toEndOf="@id/cl_4"
        android:layout_height="40dp"
        android:background="@drawable/selector_bg_white_grey"
        app:layout_constraintTop_toTopOf="@id/cl_4"
        android:layout_margin="4dp">
        <ImageView
            android:id="@+id/iv1_4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -325,7 +338,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="20dp"
            android:src="@mipmap/play"
            android:src="@mipmap/play_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -335,7 +348,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_answer"
            android:src="@mipmap/voice_answer_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -344,7 +357,7 @@
            android:id="@+id/iv_playing_4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -353,10 +366,11 @@
    </androidx.constraintlayout.widget.ConstraintLayout>
    <View
        android:id="@+id/position_2"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="180dp"
        android:layout_height="40dp"
        android:layout_marginEnd="72dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
@@ -364,8 +378,8 @@
    <View
        android:id="@+id/position_1"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_width="180dp"
        android:layout_height="40dp"
        android:layout_marginEnd="72dp"
        android:layout_marginBottom="40dp"
        app:layout_constraintBottom_toTopOf="@id/position_2"
@@ -373,19 +387,19 @@
    <View
        android:id="@+id/position_3"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:layout_marginTop="40dp"
        android:layout_width="180dp"
        android:layout_height="40dp"
        android:layout_marginEnd="72dp"
        android:layout_marginTop="40dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/position_2" />
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_answer_1"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:background="@drawable/bg_blue_8dp"
        android:layout_width="180dp"
        android:layout_height="40dp"
        android:background="@drawable/bg_white_8dp"
        android:visibility="gone"
        app:layout_constraintStart_toStartOf="@id/position_1"
        app:layout_constraintTop_toTopOf="@id/position_1">
@@ -394,7 +408,7 @@
            android:id="@+id/iv1_answer_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -405,7 +419,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_answer"
            android:src="@mipmap/voice_answer_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -414,7 +428,7 @@
            android:id="@+id/iv_playing_answer_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -435,9 +449,9 @@
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_answer_2"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:background="@drawable/bg_blue_8dp"
        android:layout_width="180dp"
        android:layout_height="40dp"
        android:background="@drawable/bg_white_8dp"
        android:visibility="gone"
        app:layout_constraintStart_toStartOf="@id/position_2"
        app:layout_constraintTop_toTopOf="@id/position_2">
@@ -446,7 +460,7 @@
            android:id="@+id/iv1_answer_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -457,7 +471,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_answer"
            android:src="@mipmap/voice_answer_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -466,7 +480,7 @@
            android:id="@+id/iv_playing_answer_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -488,9 +502,9 @@
    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/cl_answer_3"
        android:layout_width="159dp"
        android:layout_height="52dp"
        android:background="@drawable/bg_blue_8dp"
        android:layout_width="180dp"
        android:layout_height="40dp"
        android:background="@drawable/bg_white_8dp"
        android:visibility="gone"
        app:layout_constraintStart_toStartOf="@id/position_3"
        app:layout_constraintTop_toTopOf="@id/position_3">
@@ -499,7 +513,7 @@
            android:id="@+id/iv1_answer_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/yuyin"
            android:src="@mipmap/yuyin_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
@@ -510,7 +524,7 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:src="@mipmap/voice_answer"
            android:src="@mipmap/voice_answer_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
@@ -519,7 +533,7 @@
            android:id="@+id/iv_playing_answer_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/bofangzhong"
            android:src="@mipmap/bofangzhong_2"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
@@ -549,8 +563,8 @@
        <RelativeLayout
            android:id="@+id/rl_check_1"
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/selector_enable_choose"
            android:visibility="gone">
@@ -574,8 +588,8 @@
        <RelativeLayout
            android:id="@+id/rl_check_2"
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/selector_enable_choose"
            android:visibility="gone">
@@ -599,8 +613,8 @@
        <RelativeLayout
            android:id="@+id/rl_check_3"
            android:layout_width="52dp"
            android:layout_height="52dp"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/selector_enable_choose"
            android:visibility="gone">
app/src/main/res/layout/item_index.xml
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="28dp"
    android:layout_height="25dp"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/white">
    <TextView
        android:id="@+id/tv_sort"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="1"
        android:gravity="center"
        android:textSize="14sp"
        android:textStyle="bold" />
    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:id="@+id/line"
        android:background="@color/textColor66"/>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/mipmap-xxhdpi/bofangzhong_2.png
app/src/main/res/mipmap-xxhdpi/play_2.png
app/src/main/res/mipmap-xxhdpi/voice_answer_2.png
app/src/main/res/mipmap-xxhdpi/voice_question_2.png
app/src/main/res/mipmap-xxhdpi/yuyin_2.png
app/src/main/res/values/colors.xml
@@ -22,4 +22,5 @@
    <color name="colorLittleBlue">#F4FAFE</color>
    <color name="dkplayer_theme_color">@color/colorAccent</color>
    <color name="page_bg">#C3BFB3</color>
    <color name="match_gray">#D4D2CD</color>
</resources>
app/src/main/res/xml/fragment_include_scene.xml
@@ -13,24 +13,24 @@
    <ConstraintSet android:id="@+id/start_1">
        <Constraint android:id="@+id/iv_answer_1"
            android:layout_width="85dp"
            android:layout_height="52dp"
            android:layout_width="96dp"
            android:layout_height="60dp"
            motion:layout_constraintStart_toStartOf="@+id/cl_answer_1"
            motion:layout_constraintTop_toTopOf="@+id/cl_answer_1" />
    </ConstraintSet>
    <ConstraintSet android:id="@+id/start_2">
        <Constraint android:id="@+id/iv_answer_2"
            android:layout_width="85dp"
            android:layout_height="52dp"
            android:layout_width="96dp"
            android:layout_height="60dp"
            motion:layout_constraintStart_toStartOf="@+id/cl_answer_2"
            motion:layout_constraintTop_toTopOf="@+id/cl_answer_2" />
    </ConstraintSet>
    <ConstraintSet android:id="@+id/start_3">
        <Constraint android:id="@+id/iv_answer_3"
            android:layout_width="85dp"
            android:layout_height="52dp"
            android:layout_width="96dp"
            android:layout_height="60dp"
            motion:layout_constraintStart_toStartOf="@+id/cl_answer_3"
            motion:layout_constraintTop_toTopOf="@+id/cl_answer_3" />
    </ConstraintSet>
@@ -44,7 +44,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_3"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_3"
            motion:layout_constraintTop_toTopOf="@+id/cl_3"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -58,7 +58,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_5"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_5"
            motion:layout_constraintTop_toTopOf="@+id/cl_5"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -72,7 +72,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_6"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_6"
            motion:layout_constraintTop_toTopOf="@+id/cl_6"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -87,7 +87,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_3"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_3"
            motion:layout_constraintTop_toTopOf="@+id/cl_3"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -101,7 +101,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_5"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_5"
            motion:layout_constraintTop_toTopOf="@+id/cl_5"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -115,7 +115,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_6"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_6"
            motion:layout_constraintTop_toTopOf="@+id/cl_6"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -130,7 +130,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_3"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_3"
            motion:layout_constraintTop_toTopOf="@+id/cl_3"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -144,7 +144,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_5"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_5"
            motion:layout_constraintTop_toTopOf="@+id/cl_5"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
@@ -158,7 +158,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_6"
            motion:layout_constraintBottom_toBottomOf="@+id/cl_6"
            motion:layout_constraintTop_toTopOf="@+id/cl_6"
            android:layout_marginTop="4dp"
            android:layout_marginTop="44dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_marginBottom="4dp"/>
app/src/main/res/xml/scene_fragment_choose_voice.xml
@@ -17,27 +17,27 @@
        <Constraint android:id="@+id/cl_voice1"
            motion:layout_constraintStart_toStartOf="@+id/rl_1"
            motion:layout_constraintTop_toTopOf="parent"
            android:layout_width="159dp"
            android:layout_width="230dp"
            android:layout_marginTop="24dp"
            android:layout_height="52dp"/>
            android:layout_height="40dp"/>
    </ConstraintSet>
    <ConstraintSet android:id="@+id/start_2">
        <Constraint android:id="@+id/cl_voice2"
            motion:layout_constraintStart_toStartOf="@+id/rl_2"
            motion:layout_constraintTop_toTopOf="parent"
            android:layout_width="159dp"
            android:layout_width="230dp"
            android:layout_marginTop="24dp"
            android:layout_height="52dp"/>
            android:layout_height="40dp"/>
    </ConstraintSet>
    <ConstraintSet android:id="@+id/start_3">
        <Constraint android:id="@+id/cl_voice3"
            motion:layout_constraintStart_toStartOf="@+id/rl_3"
            motion:layout_constraintTop_toTopOf="parent"
            android:layout_width="159dp"
            android:layout_width="230dp"
            android:layout_marginTop="24dp"
            android:layout_height="52dp"/>
            android:layout_height="40dp"/>
    </ConstraintSet>
    <ConstraintSet android:id="@+id/end_1_1">
@@ -45,7 +45,7 @@
            motion:layout_constraintStart_toStartOf="@+id/cl_1"
            motion:layout_constraintEnd_toEndOf="@+id/cl_1"
            motion:layout_constraintTop_toTopOf="@+id/cl_1"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_width="0dp"
@@ -58,7 +58,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_2"
            motion:layout_constraintTop_toTopOf="@+id/cl_2"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -70,7 +70,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_3"
            motion:layout_constraintTop_toTopOf="@+id/cl_3"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -82,7 +82,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_4"
            motion:layout_constraintTop_toTopOf="@+id/cl_4"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -93,7 +93,7 @@
            motion:layout_constraintStart_toStartOf="@+id/cl_1"
            motion:layout_constraintEnd_toEndOf="@+id/cl_1"
            motion:layout_constraintTop_toTopOf="@+id/cl_1"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_width="0dp"
@@ -106,7 +106,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_2"
            motion:layout_constraintTop_toTopOf="@+id/cl_2"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -118,7 +118,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_3"
            motion:layout_constraintTop_toTopOf="@+id/cl_3"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -130,7 +130,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_4"
            motion:layout_constraintTop_toTopOf="@+id/cl_4"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -141,7 +141,7 @@
            motion:layout_constraintStart_toStartOf="@+id/cl_1"
            motion:layout_constraintEnd_toEndOf="@+id/cl_1"
            motion:layout_constraintTop_toTopOf="@+id/cl_1"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_width="0dp"
@@ -154,7 +154,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_2"
            motion:layout_constraintTop_toTopOf="@+id/cl_2"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -166,7 +166,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_3"
            motion:layout_constraintTop_toTopOf="@+id/cl_3"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
@@ -178,7 +178,7 @@
            motion:layout_constraintEnd_toEndOf="@+id/cl_4"
            motion:layout_constraintTop_toTopOf="@+id/cl_4"
            android:layout_width="0dp"
            android:layout_marginTop="4dp"
            android:layout_marginTop="8dp"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="4dp"
            android:layout_height="40dp"/>
app/src/main/res/xml/scene_fragment_listen_voice.xml
@@ -18,9 +18,9 @@
            motion:layout_constraintStart_toStartOf="parent"
            motion:layout_constraintEnd_toEndOf="parent"
            motion:layout_constraintTop_toTopOf="parent"
            android:layout_width="159dp"
            android:layout_width="230dp"
            android:layout_marginTop="24dp"
            android:layout_height="52dp"/>
            android:layout_height="40dp"/>
    </ConstraintSet>
    <ConstraintSet android:id="@+id/end_1">
build.gradle
@@ -7,7 +7,8 @@
    ext.retrofit_version = '2.3.0'
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/jcenter/' }
        maven { url 'https://jitpack.io' }
    }
    dependencies {
@@ -22,7 +23,8 @@
allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/jcenter/' }
        maven { url 'https://jitpack.io' }
        // 支付宝 SDK AAR 包所需的配置
        flatDir {
xldutils-kotlin/src/main/res/values/colors.xml
@@ -24,7 +24,7 @@
    <color name="colorOrange">#E37324</color>
    <color name="colorYellow">#FF9803</color>
    <color name="colorDeepGreen">#256D0F</color>
    <color name="textColorGreen">#6CC366</color>
    <color name="textColorGreen">#52C41A</color>
    <color name="colorGreen">#CBDCC5</color>
    <color name="colorDark">#000000</color>
    <color name="colorPink">#FCD8D8</color>