From 481723ce3c05d74fec53b8567b9c79d77bdcc155 Mon Sep 17 00:00:00 2001 From: 罗明文 <125975490@qq.com> Date: 星期三, 19 六月 2024 02:27:53 +0800 Subject: [PATCH] save --- app/src/main/java/com/dollearn/student/ui/home/adapter/CardAdapter.kt | 71 ++++++++++++++++++++++++++++++++++- 1 files changed, 69 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/dollearn/student/ui/home/adapter/CardAdapter.kt b/app/src/main/java/com/dollearn/student/ui/home/adapter/CardAdapter.kt index 2400b9d..f4ee1c0 100644 --- a/app/src/main/java/com/dollearn/student/ui/home/adapter/CardAdapter.kt +++ b/app/src/main/java/com/dollearn/student/ui/home/adapter/CardAdapter.kt @@ -7,17 +7,53 @@ import cn.sinata.xldutils.visible import com.dollearn.student.R import com.dollearn.student.network.entity.Card +import com.dollearn.student.ui.home.MemoryActivity import com.dollearn.student.utils.ViewAnimUtils +import com.dollearn.student.utils.extention.clickDelay +import com.facebook.drawee.view.SimpleDraweeView import kotlinx.android.synthetic.main.fragment_q_a.* import java.util.ArrayList class CardAdapter(list: ArrayList<Card>):HFRecyclerAdapter<Card>(list, R.layout.item_card) { + private val act by lazy { context as MemoryActivity } + + //第一次翻开的 + var position1 = -1 + private var p1View:View? = null + private var f1View:View? = null + private var b1View:View? = null + + //第2次翻开的 + var position2 = -1 + private var p2View:View? = null + private var f2View:View? = null + private var b2View:View? = null + override fun onBind(holder: ViewHolder, position: Int, data: Card) { val frame = holder.bind<View>(R.id.frame) val back = holder.bind<View>(R.id.back) val front = holder.bind<View>(R.id.front) - frame.setOnClickListener { - flip(position,frame,back, front) + val rlVoice = holder.bind<View>(R.id.rl_voice) + val ivImg = holder.bind<SimpleDraweeView>(R.id.iv_img) + + if(data.type == 1){ + rlVoice.gone() + ivImg.visible() + ivImg.setImageURI(data.url) + }else{ + rlVoice.visible() + ivImg.gone() + } + + frame.clickDelay { + if(data.isBack){ + if(position1 == -1) + position1 = position + else if(position2 == -1) + position2 = position + flip(position,frame,back, front) + act.flyover(position) + } } if (data.isBack){ back.visible() @@ -37,6 +73,37 @@ parent.postDelayed({ mData[position].isBack = direction != -1 switchViewVisibility(back, front) },300) + if(p1View == null){ + p1View = parent + b1View = back + f1View = front + }else if(p2View == null){ + p2View = parent + b2View = back + f2View = front + } + } + + /** + * 答案不匹配,2张卡片都翻回去 + */ + fun bothToBack(){ + if (p1View!=null&&b1View!=null&&f1View!=null) + flip(position1,p1View!!,b1View!!,f1View!!) + if (p2View!=null&&b2View!=null&&f2View!=null) + flip(position2,p2View!!,b2View!!,f2View!!) + releaseHolder() + } + + fun releaseHolder(){ + position1 = -1 + position2 = -1 + p1View = null + b1View = null + f1View = null + p2View = null + b2View = null + f2View = null } private fun switchViewVisibility(back:View,front:View) { -- Gitblit v1.7.1