lmw
2023-05-27 ff365ff4346d220edf2ec1d0041f2284befe3870
1
2
3
4
5
6
7
8
9
10
11
12
13
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
42
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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()
        }
    }
}