diff --git a/taptargetview/src/main/java/com/getkeepsafe/taptargetview/TapTargetView.java b/taptargetview/src/main/java/com/getkeepsafe/taptargetview/TapTargetView.java index 6c874f4..d954fc6 100755 --- a/taptargetview/src/main/java/com/getkeepsafe/taptargetview/TapTargetView.java +++ b/taptargetview/src/main/java/com/getkeepsafe/taptargetview/TapTargetView.java @@ -68,6 +68,7 @@ @SuppressLint("ViewConstructor") public class TapTargetView extends View { private boolean isDismissed = false; + private boolean isDismissing = false; private boolean isInteractable = true; final int TARGET_PADDING; @@ -429,6 +430,9 @@ public TapTargetView(final Context context, globalLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { + if (isDismissing) { + return; + } updateTextLayouts(); target.onReady(new Runnable() { @Override @@ -607,6 +611,7 @@ protected void onDetachedFromWindow() { void onDismiss(boolean userInitiated) { if (isDismissed) return; + isDismissing = false; isDismissed = true; for (final ValueAnimator animator : animators) { @@ -732,6 +737,7 @@ public boolean onKeyUp(int keyCode, KeyEvent event) { * (results in different dismiss animations) */ public void dismiss(boolean tappedTarget) { + isDismissing = true; pulseAnimation.cancel(); expandAnimation.cancel(); if (tappedTarget) {