diff --git a/app/src/main/java/com/hippo/scene/Scene.java b/app/src/main/java/com/hippo/scene/Scene.java index 623f8166d..043332132 100644 --- a/app/src/main/java/com/hippo/scene/Scene.java +++ b/app/src/main/java/com/hippo/scene/Scene.java @@ -253,9 +253,11 @@ public abstract class Scene { } protected void onPause() { + getSceneView().setEnableTouch(false); } protected void onResume() { + getSceneView().setEnableTouch(true); } protected void onReplace(@NonNull Scene oldScene) { diff --git a/app/src/main/java/com/hippo/scene/SceneView.java b/app/src/main/java/com/hippo/scene/SceneView.java index a35b5728f..f46be31bf 100644 --- a/app/src/main/java/com/hippo/scene/SceneView.java +++ b/app/src/main/java/com/hippo/scene/SceneView.java @@ -16,11 +16,16 @@ package com.hippo.scene; import android.content.Context; +import android.support.annotation.NonNull; import android.util.AttributeSet; +import android.view.MotionEvent; import android.widget.AbsoluteLayout; @SuppressWarnings("deprecation") public class SceneView extends AbsoluteLayout { + + private boolean mEnableTouch = true; + public SceneView(Context context) { super(context); init(); @@ -40,8 +45,17 @@ public class SceneView extends AbsoluteLayout { setClickable(true); } + public void setEnableTouch(boolean enableTouch) { + mEnableTouch = enableTouch; + } + @Override protected void dispatchSetPressed(boolean pressed) { // Don't dispatch it to children } + + @Override + public boolean dispatchTouchEvent(@NonNull MotionEvent ev) { + return mEnableTouch && super.dispatchTouchEvent(ev); + } }