package com.fuban.user.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.fuban.user.R
|
import com.fuban.user.network.entity.Message
|
import com.fuban.user.ui.H5Activity
|
import com.fuban.user.ui.trip.adapter.AdsAdapter
|
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.*
|
import org.jetbrains.anko.backgroundResource
|
import org.jetbrains.anko.matchParent
|
import org.jetbrains.anko.support.v4.startActivity
|
import org.jetbrains.anko.wrapContent
|
|
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<Message>("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(matchParent, wrapContent)
|
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.backgroundResource = 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.backgroundResource = R.drawable.indicator_normal
|
ll_indicator.getChildAt(position).tv_item.backgroundResource = R.drawable.indicator_current
|
index = position
|
}
|
})
|
banner.setOnBannerListener(object :OnBannerListener<Message>{
|
override fun OnBannerClick(data: Message?, position: Int) {
|
data?.let {
|
if (data.isJump == 1){ //要跳转
|
if (data.jumpType == "2")
|
startActivity<H5Activity>("title" to it.name,"url" to it.content)
|
else{
|
val intent = Intent()
|
intent.action = "android.intent.action.VIEW"
|
intent.data = Uri.parse(it.jumpUrl)
|
startActivity(intent)
|
}
|
}
|
}
|
}
|
})
|
iv_close.setOnClickListener {
|
dismiss()
|
}
|
}
|
}
|