fixed "click on a menu button will not trigger it" bug

This commit is contained in:
Dacer
2018-02-13 20:38:38 +08:00
parent b392c2d6ac
commit 9705636886

View File

@@ -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;