Skip to content

Commit 011ff31

Browse files
committed
优化点击事件
1 parent 9dd4aac commit 011ff31

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

library/src/main/java/com/yhw/taglayout/TagLayout.kt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import android.util.AttributeSet
77
import android.util.DisplayMetrics
88
import android.util.Log
99
import android.view.View
10-
import android.view.View.OnLongClickListener
1110
import android.view.ViewGroup
1211
import android.view.WindowManager
1312
import kotlin.math.max
@@ -135,9 +134,16 @@ class TagLayout : ViewGroup {
135134
var i = 0
136135
for ((childView, rect) in mViewRectMap) {
137136
childView.layout(rect.left, rect.top, rect.right, rect.bottom)
138-
childView.isClickable = true
139-
childView.isFocusable = true
140-
val position = i
137+
setItemListener(childView, i)
138+
i++
139+
}
140+
}
141+
142+
/**
143+
* 给子view设置点击事件
144+
*/
145+
private fun setItemListener(childView: View, position: Int) {
146+
if (choiceMode != ChoiceMode.None.choiceMode || (onItemClickListener != null || onItemLongClickListener != null)) {
141147
childView.setOnClickListener {
142148
changedCheckedItemView(position)
143149
if (onItemClickListener != null) {
@@ -160,14 +166,11 @@ class TagLayout : ViewGroup {
160166
}
161167

162168
if (onItemLongClickListener != null) {
163-
childView.isClickable = true
164-
childView.isFocusable = true
165169
childView.setOnLongClickListener { v ->
166-
onItemLongClickListener?.onItemLongClick(i, v)
170+
onItemLongClickListener?.onItemLongClick(position, v)
167171
true
168172
}
169173
}
170-
i++
171174
}
172175
}
173176

@@ -262,6 +265,11 @@ class TagLayout : ViewGroup {
262265
} else {
263266
changedCheckedItemView(-1)
264267
}
268+
var i = 0
269+
for ((childView, _) in mViewRectMap) {
270+
setItemListener(childView, i)
271+
i++
272+
}
265273
}
266274

267275
/**

0 commit comments

Comments
 (0)