package com.fanghua.driver.dialog
|
|
import android.content.Intent
|
import android.net.Uri
|
import android.os.Bundle
|
import android.view.Gravity
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import androidx.fragment.app.DialogFragment
|
import com.fanghua.driver.R
|
import com.fanghua.driver.bean.AdsData
|
import com.fanghua.driver.ui.adapter.AdsAdapter
|
import com.kuaiyun.emanagercar.ui.base.BaseWebActivity
|
import com.youth.banner.listener.OnBannerListener
|
import com.youth.banner.listener.OnPageChangeListener
|
import kotlinx.android.synthetic.main.dialog_banner.*
|
import kotlinx.android.synthetic.main.item_indicator.view.*
|
|
class BannerDialog: DialogFragment() {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
|
inflater.inflate(R.layout.dialog_banner,container,false)
|
|
private val datas by lazy {
|
arguments?.getParcelableArrayList<AdsData>("data")?: arrayListOf()
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setStyle(STYLE_NO_FRAME,R.style.FadeDialog)
|
}
|
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
super.onActivityCreated(savedInstanceState)
|
dialog?.window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
dialog?.window?.setGravity(Gravity.CENTER)
|
dialog?.setCanceledOnTouchOutside(false)
|
}
|
|
|
|
private var index = 0 //当前页
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
banner.isAutoLoop(false)
|
banner.adapter = AdsAdapter(datas)
|
(0 until datas.size).forEach {
|
val view = layoutInflater.inflate(R.layout.item_indicator, null)
|
if (it == 0)
|
view.tv_item.setBackgroundResource(R.drawable.indicator_current)
|
ll_indicator.addView(view)
|
}
|
banner.addOnPageChangeListener(object :OnPageChangeListener{
|
override fun onPageScrollStateChanged(state: Int) {
|
}
|
|
override fun onPageScrolled(
|
position: Int,
|
positionOffset: Float,
|
positionOffsetPixels: Int
|
) {
|
}
|
|
override fun onPageSelected(position: Int) {
|
ll_indicator.getChildAt(index).tv_item.setBackgroundResource(R.drawable.indicator_normal)
|
ll_indicator.getChildAt(position).tv_item.setBackgroundResource(R.drawable.indicator_current)
|
index = position
|
}
|
})
|
banner.setOnBannerListener(object :OnBannerListener<AdsData>{
|
override fun OnBannerClick(data: AdsData?, position: Int) {
|
data?.let {
|
if (data.isJump == 1){ //要跳转
|
if (data.jumpType == "2"){
|
val intent = Intent(requireContext(), BaseWebActivity::class.java)
|
intent.putExtra("title",it.name).putExtra("url",it.html)
|
startActivity(intent)
|
} else{
|
val intent = Intent()
|
intent.action = "android.intent.action.VIEW"
|
intent.data = Uri.parse(it.jumpUrl)
|
startActivity(intent)
|
}
|
}
|
}
|
}
|
})
|
iv_close.setOnClickListener {
|
dismiss()
|
}
|
}
|
}
|