package com.igo.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 android.widget.LinearLayout
|
import androidx.fragment.app.DialogFragment
|
import com.igo.user.R
|
import com.igo.user.network.entity.Message
|
import com.igo.user.ui.H5Activity
|
import com.igo.user.ui.trip.adapter.AdsAdapter
|
import com.youth.banner.Banner
|
import com.youth.banner.listener.OnBannerListener
|
import com.youth.banner.listener.OnPageChangeListener
|
import org.jetbrains.anko.backgroundResource
|
import org.jetbrains.anko.find
|
import org.jetbrains.anko.matchParent
|
import org.jetbrains.anko.support.v4.find
|
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,cn.sinata.xldutils.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 val banner by lazy { find<Banner<Message,AdsAdapter>>(R.id.banner) }
|
private val ll_indicator by lazy { find<LinearLayout>(R.id.ll_indicator) }
|
|
|
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.find<View>(R.id.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).find<View>(R.id.tv_item).backgroundResource = R.drawable.indicator_normal
|
ll_indicator.getChildAt(position).find<View>(R.id.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)
|
}
|
dismissAllowingStateLoss()
|
}
|
}
|
}
|
})
|
find<View>(R.id.iv_close).setOnClickListener {
|
dismiss()
|
}
|
}
|
}
|