@@ -17,6 +17,7 @@ open class MenuAdapter(
17
17
private val gravity : MenuGravity
18
18
) {
19
19
20
+ var onCloseOutsideClickListener: (view: View ) -> Unit = {}
20
21
var onItemClickListener: (view: View ) -> Unit = {}
21
22
var onItemLongClickListener: (view: View ) -> Unit = {}
22
23
private var onItemClickListenerCalled: (view: View ) -> Unit = {}
@@ -68,6 +69,13 @@ open class MenuAdapter(
68
69
}
69
70
}
70
71
72
+ fun closeOutside () {
73
+ onItemClickListenerCalled = onCloseOutsideClickListener
74
+ menuWrapper.getChildAt(FIRST_CHILD_INDEX )?.let {
75
+ viewClicked(it)
76
+ }
77
+ }
78
+
71
79
fun getItemCount () = menuObjects.size
72
80
73
81
private fun getLastItemPosition () = getItemCount() - 1
@@ -204,12 +212,12 @@ open class MenuAdapter(
204
212
return AnimatorSet ().apply {
205
213
duration = animationDurationMillis
206
214
startDelay = 0
215
+ interpolator = HesitateInterpolator ()
207
216
208
217
playTogether(
209
218
AnimatorSet ().apply { playSequentially(textAnimations) },
210
219
AnimatorSet ().apply { playSequentially(imageAnimations) }
211
220
)
212
- setInterpolator(HesitateInterpolator ())
213
221
onAnimationEnd { toggleIsAnimationRun() }
214
222
}
215
223
}
@@ -403,5 +411,7 @@ open class MenuAdapter(
403
411
companion object {
404
412
405
413
const val ANIMATION_DURATION_MILLIS = 100L
414
+
415
+ private const val FIRST_CHILD_INDEX = 0
406
416
}
407
417
}
0 commit comments