ConfideHomeBannerView.kt 2.43 KB
Newer Older
洪国微 committed
1 2 3 4 5 6 7 8 9 10 11 12
package com.ydl.confide.home.widget

import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import com.yidianling.common.tools.RxImageTool
import com.ydl.confide.R
import com.ydl.confide.home.bean.ConfideHomeBodyBean
import com.ydl.confide.home.bean.ConfideHomeDataBean
import com.ydl.confide.home.event.IConfideHomeEvent
import com.ydl.ydlcommon.view.banner.GlideImageLoader
13
import kotlinx.android.synthetic.main.confide_banner_view.view.*
洪国微 committed
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

/**
 * @author yuanwai
 * @描述:倾诉首页banner
 * @Copyright Copyright (c) 2018
 * @Company 壹点灵
 * @date 2018/8/10
 */
class ConfideHomeBannerView(context: Context,
                            //
                            private var confideHomeEvent: IConfideHomeEvent) : FrameLayout(context) {
    /**
     * banner数据缓存
     */
    private var mDataList: List<ConfideHomeBodyBean>? = null
    /**
     * 数据缓存
     */
    private var mDataBean: ConfideHomeDataBean? = null

    private var margin = 0

    init {
        initView()
    }

    private fun initView() {
        val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
42
        View.inflate(context, R.layout.confide_banner_view, this)
洪国微 committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
        layoutParams = params
        margin = RxImageTool.dip2px(2.5f)
    }

    fun initData(dataBean: ConfideHomeDataBean?) {
        if (null == dataBean ||
                dataBean.body == null ||
                dataBean.body!!.isEmpty()) {
            visibility = View.GONE
            return
        }
        mDataBean = dataBean

        visibility = View.VISIBLE

        if (null == mDataList) {
            mDataList = ArrayList()
        } else {
            (mDataList as ArrayList).clear()
        }
        (mDataList as ArrayList<ConfideHomeBodyBean>).addAll(mDataBean!!.body!!)

        var urlLists = ArrayList<String>()
        var count = (mDataList as ArrayList<ConfideHomeBodyBean>).size - 1
        for (index in 0..count) {
            urlLists.add((mDataList as ArrayList<ConfideHomeBodyBean>)[index].bannerImageUrl!!)
        }
70
        banner.setImageLoader(GlideImageLoader(R.color.confide_new_divide_color,6)).setImages(urlLists).start()
洪国微 committed
71 72 73 74 75 76

        banner.setOnBannerListener {
            confideHomeEvent!!.bannerClick((mDataList as ArrayList<ConfideHomeBodyBean>)[it].bannerLinkUrl, it, (mDataList as ArrayList<ConfideHomeBodyBean>)[it].bannerTitle)
        }
    }
}