ConfideHomeRecommendExpertSection.kt 3.31 KB
Newer Older
洪国微 committed
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 52 53 54 55 56 57 58 59 60 61
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)) {
62
            return HeadViewHolder(LayoutInflater.from(context).inflate(R.layout.confide_recommend_expert_head, parent, false))
洪国微 committed
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
        } 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)

}