From 431be3ce9524290decbec97671c87e160d75dded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=99=E9=80=9A?= <243273268@qq.com> Date: Fri, 29 Jun 2018 14:48:13 +0800 Subject: [PATCH] Solve the problem of multiple quick clicks and the view doesn't dismiss --- .../materialintro/view/MaterialIntroView.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java b/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java index 2f5afe2..cbe2286 100644 --- a/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java +++ b/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java @@ -220,6 +220,11 @@ public class MaterialIntroView extends RelativeLayout { */ private boolean usesCustomShape = false; + /** + * status of dismiss + */ + private boolean isDismiss = false; + public MaterialIntroView(Context context) { super(context); init(context); @@ -372,16 +377,17 @@ public boolean onTouchEvent(MotionEvent event) { return true; case MotionEvent.ACTION_UP: - - if (isTouchOnFocus || dismissOnTouch) - dismiss(); - - if (isTouchOnFocus && isPerformClick) { - targetView.getView().performClick(); - targetView.getView().setPressed(true); - targetView.getView().invalidate(); - targetView.getView().setPressed(false); - targetView.getView().invalidate(); + if(!isDismiss){ + if (isTouchOnFocus || dismissOnTouch) + dismiss(); + + if (isTouchOnFocus && isPerformClick) { + targetView.getView().performClick(); + targetView.getView().setPressed(true); + targetView.getView().invalidate(); + targetView.getView().setPressed(false); + targetView.getView().invalidate(); + } } return true; @@ -425,12 +431,14 @@ public void onAnimationStart() { if(isIdempotent) { preferencesManager.setDisplayed(materialIntroViewId); } + isDismiss = false; } /** * Dismiss Material Intro View */ public void dismiss() { + isDismiss = true; if(!isIdempotent) { preferencesManager.setDisplayed(materialIntroViewId); }