package com.ydl.confide.home.section import android.content.Context import android.support.v7.widget.RecyclerView import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import com.ydl.confide.R import com.ydl.confide.home.bean.ConfideHomeDataBean import com.ydl.confide.home.config.IConfideHomeConfig import com.ydl.confide.home.event.IConfideHomeEvent import com.ydl.confide.home.widget.ConfideHomeRecommendExpertView import com.ydl.ydlcommon.adapter.section.Section /** * @author Jim * @描述:最佳倾诉榜单section * @Copyright Copyright (c) 2018 * @Company 壹点灵 * @date 2018/8/11 0011 */ class ConfideHomeRecommendExpertSection(var context: Context, var confideHomeEvent: IConfideHomeEvent) : Section<RecyclerView.ViewHolder>(0){ private var data: ConfideHomeDataBean? = null private val HEADER = 200 fun setData(data: ConfideHomeDataBean) { this.data = data } override fun bindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) { if (holder is HeadViewHolder && null != data && null != data!!.head && !TextUtils.isEmpty(this.data?.head!!.title)) { holder.confideHeadView.findViewById<TextView>(R.id.tv_title).text = this.data?.head!!.title } else if (holder is ConfideHomeRecommendExpertViewHolder) { holder.confideHomeRecommendExpertView.initData(this.data!!) } } override fun getTotalDataNum(): Int { var count = 0 if (data?.head != null && !TextUtils.isEmpty(data?.head!!.title)) { count++ } else if (data?.footer != null) { count++ } return count+1 } override fun getItemViewType(position: Int): Int { if (isHeadType(position)) { return combineType(IConfideHomeConfig.SECTION_CONSULTANT, this.HEADER) } else { return IConfideHomeConfig.SECTION_CONSULTANT } } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder { if (viewType == combineType(IConfideHomeConfig.SECTION_CONSULTANT, HEADER)) { return HeadViewHolder(LayoutInflater.from(context).inflate(R.layout.confide_recommend_expert_head, parent, false)) } else { return ConfideHomeRecommendExpertViewHolder(ConfideHomeRecommendExpertView(context, confideHomeEvent)) } } override fun isBelongTo(viewType: Int): Boolean { return viewType.toString().startsWith(IConfideHomeConfig.SECTION_CONSULTANT.toString()) } override fun isHeadType(position: Int): Boolean { if (data?.head==null || TextUtils.isEmpty(data?.head!!.title)) { return false } else if (position == 0) { return true } return false } override fun isFooterType(position: Int): Boolean { if (data?.footer == null) { return false } else if (position == totalDataNum - 1) { return true } return false } inner class HeadViewHolder(var confideHeadView: View) : RecyclerView.ViewHolder(confideHeadView) inner class ConfideHomeRecommendExpertViewHolder(var confideHomeRecommendExpertView: ConfideHomeRecommendExpertView) : RecyclerView.ViewHolder(confideHomeRecommendExpertView) }