@@ -15,33 +15,19 @@ import com.pengxh.kt.lite.R
15
15
* 数量可编辑图片适配器
16
16
*
17
17
* @param context 使用适配的上下文
18
+ * @param images RecyclerView内数据
18
19
* @param viewWidth RecyclerView实际宽度,一般情况下就是屏幕宽度,但是如果有其他控件和它在同一行,需要计算实际宽度,不然无法正确显示RecyclerView item的布局
19
20
* @param imageCountLimit 最多显示的图片数目
20
21
* @param spanCount 每行显示的图片数目
21
22
* */
22
23
class EditableImageAdapter (
23
24
private val context : Context ,
25
+ private val images : ArrayList <String >,
24
26
private val viewWidth : Int ,
25
27
private val imageCountLimit : Int ,
26
28
private val spanCount : Int
27
29
) : RecyclerView.Adapter<ViewHolder>() {
28
30
29
- private var adapterItems = ArrayList <String >()
30
-
31
- fun notifyImageItemRangeInserted (images : ArrayList <String >) {
32
- val previousSize = adapterItems.size
33
- adapterItems.clear()
34
- notifyItemRangeRemoved(0 , previousSize)
35
- adapterItems.addAll(images)
36
- notifyItemRangeInserted(0 , adapterItems.size)
37
- }
38
-
39
- fun notifyImageItemRemoved (images : ArrayList <String >) {
40
- if (adapterItems.isNotEmpty()) {
41
- notifyImageItemRangeInserted(images)
42
- }
43
- }
44
-
45
31
override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): ViewHolder {
46
32
return ViewHolder (
47
33
LayoutInflater .from(context).inflate(R .layout.item_editable_rv_g, parent, false )
@@ -54,13 +40,13 @@ class EditableImageAdapter(
54
40
val params = LinearLayout .LayoutParams (imageSize, imageSize)
55
41
imageView.layoutParams = params
56
42
57
- if (position == itemCount - 1 && adapterItems .size < imageCountLimit) {
43
+ if (position == itemCount - 1 && images .size < imageCountLimit) {
58
44
imageView.setImageResource(R .drawable.ic_add_pic)
59
45
imageView.setOnClickListener { // 添加图片
60
46
itemClickListener?.onAddImageClick()
61
47
}
62
48
} else {
63
- Glide .with (context).load(adapterItems [position]).into(imageView)
49
+ Glide .with (context).load(images [position]).into(imageView)
64
50
imageView.setOnClickListener { // 点击操作,查看大图
65
51
itemClickListener?.onItemClick(holder.bindingAdapterPosition)
66
52
}
@@ -72,10 +58,10 @@ class EditableImageAdapter(
72
58
}
73
59
}
74
60
75
- override fun getItemCount (): Int = if (adapterItems .size >= imageCountLimit) {
61
+ override fun getItemCount (): Int = if (images .size >= imageCountLimit) {
76
62
imageCountLimit
77
63
} else {
78
- adapterItems .size + 1
64
+ images .size + 1
79
65
}
80
66
81
67
private var itemClickListener: OnItemClickListener ? = null
0 commit comments