lmw
2024-12-06 40237ce34f0754495e5ac6a7b291fa96508160fd
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(100,15,0.9f)
                banner_card.setOnBannerListener { _, position ->
                    callback?.onResult(data.clientMeditationVOList[position].id)
                }
                if (data.clientMeditationVOList.size>2)
                    banner_card.currentItem = 1
            }
        }
    }