什么导致Android中的MotionEvent.ACTION_CANCEL?

Phi*_*hil 34 debugging android motionevent

我正在调试Android上的一些触摸处理内容,并试图找出发送到我的View的MotionEvent onTouchListener包含取消操作的原因.我无法找到有关其原因的任何文档,并希望有人能指出我正确的方向来调试此问题 - 错误代码,源代码或一些常识.

0gr*_*ity 54

这是你想要的:

"父级占有动作时会发生ACTION_CANCEL,例如当用户在列表视图中拖动足够的内容时它将开始滚动而不是让你按下其中的按钮.你可以在视图组中找到更多关于它的信息.文档:onInterceptTouchEvent."

希望这是您正在寻找的答案:

资源:运动事件,堆栈溢出.

  • 这也发生在轮换上,从上面我不清楚. (3认同)

Mar*_*der 14

你只需要打电话

requestDisallowInterceptTouchEvent(true);
Run Code Online (Sandbox Code Playgroud)

在父视图上,像这样 -

        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            view.getParent().requestDisallowInterceptTouchEvent(true);
            switch(motionEvent.getActio){
            }

            return false; 

         }
Run Code Online (Sandbox Code Playgroud)

来源:onInterceptTouchEvent,onTouchEvent 只看到 ACTION_DOWN