lmw
2025-04-03 8d72ec1b07a4fe0863b41b1140a8c0e679867b93
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
            }
        }
    }