package com.yidianling.tests.home.widget import android.content.Context import android.view.View import android.view.ViewGroup import android.widget.RelativeLayout import com.yidianling.common.tools.RxImageTool import com.yidianling.tests.R import com.yidianling.tests.home.bean.TestHomeDataBean import com.yidianling.tests.home.contract.ITestHomeContract import com.yidianling.tests.home.event.ITestHomeEvent import kotlinx.android.synthetic.main.tests_testhome_daily_view.view.* /** * @author yuanwai * @描述:测评首页--每日精选View * @Copyright Copyright (c) 2018 * @Company 壹点灵 * @date 2018/7/27 */ class TestHomeDailyView(mContext: Context, testHomeEvent: ITestHomeEvent, testHomeView: ITestHomeContract.View ) : RelativeLayout(mContext) { /** * 数据缓存 */ private var mDataBean: TestHomeDataBean? = null private var mView: View? = null private var testHomeEvent: ITestHomeEvent? = null private var testHomeView: ITestHomeContract.View? = null /** * 底部线是否添加 */ private var hasLine: Boolean = false var couponMoney = "" init { this.testHomeView = testHomeView this.testHomeEvent = testHomeEvent initView() } /** * 界面初始化 */ private fun initView() { var params = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) layoutParams = params mView = View.inflate(context, R.layout.tests_testhome_daily_view, this) tests_testhome_dailyRight.setOnClickListener { testHomeView!!.dailyChange() } } /** * 设置数据 */ fun initData(dataBean: TestHomeDataBean) { //如果数据为空 隐藏当前View if (null == dataBean || null == dataBean.body || dataBean.body.isEmpty()) { visibility = View.GONE return } visibility = View.VISIBLE mDataBean = dataBean refreshView() } /** * 界面刷新 */ fun refreshView() { //标题赋值 createTitle() //列表赋值 createDailyHorizo() addBottomLine() } /** * 创建标题 */ private fun createTitle() { if (null == mDataBean) { tv_title.text = "" return } tv_title.text = mDataBean!!.head!!.title } /** * 创建每日精选横向滚动View */ private fun createDailyHorizo() { var dailyHorizoView = getChildAt(childCount - 2) if (dailyHorizoView is TestHomeDailyHorizoView) { dailyHorizoView.couponMoney = this.couponMoney dailyHorizoView.initData(mDataBean!!.body!!) } else { var params = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) dailyHorizoView = TestHomeDailyHorizoView(context, testHomeEvent!!) dailyHorizoView.id = R.id.tests_testhome_daily dailyHorizoView.couponMoney = this.couponMoney dailyHorizoView.initData(mDataBean!!.body!!) params.addRule(BELOW, R.id.tv_title) params.leftMargin = RxImageTool.dip2px(9f) dailyHorizoView.layoutParams = params addView(dailyHorizoView) } } /** * 添加底部灰色线 */ private fun addBottomLine() { if (!hasLine) { hasLine = true var param = RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, RxImageTool.dip2px(9f)) var bottomLine = View(context) bottomLine.setBackgroundColor(resources.getColor(R.color.tests_testhome_line)) param.addRule(BELOW, R.id.tests_testhome_daily) bottomLine.layoutParams = param addView(bottomLine) } } }