From 9705636886838ae650c46f641d652fa4fce554fb Mon Sep 17 00:00:00 2001 From: Dacer Date: Tue, 13 Feb 2018 20:38:38 +0800 Subject: [PATCH] fixed "click on a menu button will not trigger it" bug --- .../androidarcmenu/ArcMenuLayout.java | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java b/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java index 73b0552..7242946 100644 --- a/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java +++ b/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java @@ -120,26 +120,6 @@ public class ArcMenuLayout extends ViewGroup { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: hideOnTouchUp = true; - break; - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_CANCEL: - if (!show) break; - if (lastFocusIndex != -1) { - show = false; - AnimatorUtils.openMenu(this, lastFocusIndex, animListener); - if (onClickMenuListener != null) { - View clickedView = getChildAt(lastFocusIndex); - onClickMenuListener.onClickArcMenu(arcMenu, viewForListener, (int) clickedView.getTag()); - } - } else if (hideOnTouchUp) { - if (showAnimSet != null && showAnimSet.isRunning()) showAnimSet.cancel(); - AnimatorUtils.hideMenu(this, touchPoint); - show = false; - } else { - hideOnTouchUp = true; - } - lastFocusIndex = -1; - break; case MotionEvent.ACTION_MOVE: if (!animFinished) break; tempRect = new Rect(); @@ -161,6 +141,25 @@ public class ArcMenuLayout extends ViewGroup { lastFocusIndex = -1; } break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + if (!show) break; + if (lastFocusIndex != -1) { + show = false; + AnimatorUtils.openMenu(this, lastFocusIndex, animListener); + if (onClickMenuListener != null) { + View clickedView = getChildAt(lastFocusIndex); + onClickMenuListener.onClickArcMenu(arcMenu, viewForListener, (int) clickedView.getTag()); + } + } else if (hideOnTouchUp) { + if (showAnimSet != null && showAnimSet.isRunning()) showAnimSet.cancel(); + AnimatorUtils.hideMenu(this, touchPoint); + show = false; + } else { + hideOnTouchUp = true; + } + lastFocusIndex = -1; + break; } return show;