lmw
2024-06-18 1f45a54dc8e149548d3a61d1228741627aa4f23e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.dollearn.student.ui.home.adapter
 
import android.view.View
import cn.sinata.xldutils.adapter.HFRecyclerAdapter
import cn.sinata.xldutils.adapter.util.ViewHolder
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.network.entity.Card
import com.dollearn.student.utils.ViewAnimUtils
import kotlinx.android.synthetic.main.fragment_q_a.*
import java.util.ArrayList
 
class CardAdapter(list: ArrayList<Card>):HFRecyclerAdapter<Card>(list, R.layout.item_card) {
    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)
        }
        if (data.isBack){
            back.visible()
            front.gone()
        }else{
            back.gone()
            front.visible()
        }
    }
 
    private fun flip(position: Int,parent:View,back: View,front: View){
        var direction = 1
        if (back.isShown) {
            direction = -1
        }
        ViewAnimUtils.flip(parent, 300, direction)
        parent.postDelayed({
            mData[position].isBack = direction != -1
            switchViewVisibility(back, front) },300)
    }
 
    private fun switchViewVisibility(back:View,front:View) {
        if (back.isShown) {
            back.visibility = View.GONE
            front.visibility = View.VISIBLE
        } else {
            back.visibility = View.VISIBLE
            front.visibility = View.GONE
        }
    }
}