18034727885
2026-05-14 dad2ded3e9e9d2edf55c7ce10e791588b526961f
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
package com.example.smart.widget.dialog
 
import android.content.Context
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.smart.R
import com.example.smart.bean.CommonOptionsBean
import com.example.smart.databinding.CommonPopListBinding
import razerdp.basepopup.BasePopupWindow
 
/**
 * @description:通用下拉框
 */
class CommonPopupWindow(val mContext: Context) : BasePopupWindow(mContext) {
 
    var gravity = Gravity.BOTTOM
 
    private lateinit var binding: CommonPopListBinding
 
    var listener: ItemClickListener? = null
 
    init {
        setContentView(R.layout.common_pop_list)
    }
 
 
    override fun onViewCreated(contentView: View) {
        super.onViewCreated(contentView)
        binding = CommonPopListBinding.bind(contentView)
    }
 
    fun bindData(list: List<CommonOptionsBean>) {
        binding.recyclerView.layoutManager =
            LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)
        binding.recyclerView.adapter = PopupAdapter(mContext, list)
    }
 
    interface ItemClickListener {
        fun onItemClick(bean: CommonOptionsBean)
    }
 
    inner class PopupAdapter(val mContext: Context, val list: List<CommonOptionsBean>) :
        RecyclerView.Adapter<PopupViewHolder>() {
 
        override fun onBindViewHolder(holder: PopupViewHolder, position: Int) {
            holder.titleTv.text = list[position].name
 
            holder.itemView.setOnClickListener {
                listener?.onItemClick(list[position])
                dismiss()
            }
        }
 
 
 
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PopupViewHolder {
 
            return PopupViewHolder(
                LayoutInflater.from(mContext).inflate(R.layout.common_pop_item, parent, false)
            )
        }
 
 
        override fun getItemCount() = list.size
 
    }
 
 
    inner class PopupViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
 
        val titleTv: TextView
 
 
        init {
            titleTv = itemView.findViewById(R.id.tv_item)
        }
 
    }
}