@@ -7,7 +7,6 @@ import android.util.AttributeSet
77import android.util.DisplayMetrics
88import android.util.Log
99import android.view.View
10- import android.view.View.OnLongClickListener
1110import android.view.ViewGroup
1211import android.view.WindowManager
1312import 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