lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeAdapter.kt
@@ -4,22 +4,26 @@
import cn.sinata.xldutils.adapter.HFRecyclerAdapter
import cn.sinata.xldutils.adapter.util.ViewHolder
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.visible
import com.facebook.drawee.view.SimpleDraweeView
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.entity.CommonItemBean
import com.sinata.xqmuse.network.entity.HomeListBean
import com.sinata.xqmuse.network.entity.Menu
import com.sinata.xqmuse.ui.home.TypeVoiceActivity
import com.sinata.xqmuse.utils.interfaces.StringCallback
import com.youth.banner.Banner
import com.youth.banner.listener.OnBannerListener
import org.jetbrains.anko.startActivity
import java.util.ArrayList
class HomeAdapter(list: ArrayList<HomeListBean>) :HFRecyclerAdapter<HomeListBean>(list, R.layout.item_home_list){
    val menus = arrayListOf<Menu>()
    var callback:StringCallback? = null
    override fun onBind(holder: ViewHolder, position: Int, data: HomeListBean) {
        val cl_banner = holder.bind<View>(R.id.cl_banner)
        val cl_menu = holder.bind<View>(R.id.cl_menu)
        if (data.clientMeditationCategoryVO == null){
        if (data.clientMeditationCategoryVO?.showType == null){
            cl_menu.visible()
            cl_banner.gone()
            val iv_1 = holder.bind<SimpleDraweeView>(R.id.iv_1)
@@ -29,31 +33,43 @@
            iv_2.setImageURI(menus[1].secondIconUrl)
            iv_3.setImageURI(menus[2].secondIconUrl)
            iv_1.setOnClickListener {
                context.myToast("点击菜单1")
                context.startActivity<TypeVoiceActivity>("id" to menus[0].id,"title" to menus[0].categoryName)
            }
            iv_2.setOnClickListener {
                context.myToast("点击菜单2")
                context.startActivity<TypeVoiceActivity>("id" to menus[1].id,"title" to menus[1].categoryName)
            }
            iv_3.setOnClickListener {
                context.myToast("点击菜单3")
                context.startActivity<TypeVoiceActivity>("id" to menus[2].id,"title" to menus[2].categoryName)
            }
        }else{
            cl_menu.gone()
            cl_banner.visible()
            holder.setText(R.id.tv_title,data.clientMeditationCategoryVO.categoryName)
            holder.setText(R.id.tv_subtitle,data.clientMeditationCategoryVO.description)
            val banner_landscape = holder.bind<View>(R.id.banner_landscape)
            val banner_card = holder.bind<View>(R.id.banner_card)
            holder.bind<View>(R.id.iv_more).setOnClickListener {
                context.startActivity<TypeVoiceActivity>("title" to data.clientMeditationCategoryVO.categoryName,"id" to data.clientMeditationCategoryVO.id)
            }
            val banner_landscape = holder.bind<Banner<CommonItemBean,LandscapeBannerAdapter>>(R.id.banner_landscape)
            val banner_card = holder.bind<Banner<CommonItemBean,CardBannerAdapter>>(R.id.banner_card)
            if (data.clientMeditationCategoryVO.showType == 1){ //横版
                banner_landscape.visible()
                banner_card.gone()
                val landscapeBannerAdapter = LandscapeBannerAdapter(data.clientMeditationVOList,context)
                banner_landscape.adapter = landscapeBannerAdapter
                banner_landscape.setOnBannerListener { _, position ->
                    callback?.onResult(data.clientMeditationVOList[position].id)
                }
            }else{ //竖版布局
                banner_landscape.gone()
                banner_card.visible()
                val cardBannerAdapter = CardBannerAdapter(data.clientMeditationVOList,context)
                banner_card.adapter = cardBannerAdapter
                banner_card.setBannerGalleryEffect(110,12,0.92f)
                banner_card.setOnBannerListener { _, position ->
                    callback?.onResult(data.clientMeditationVOList[position].id)
                }
                if (data.clientMeditationVOList.size>2)
                    banner_card.currentItem = 1
            }
        }
    }