fix
lmw
2023-03-14 128cbeac95dbc995fe1760bbd0f0a985fa5d23ba
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
93
94
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()
        }
    }
}