什么导致Android中的MotionEvent.ACTION_CANCEL?

问题描述 投票:30回答:3

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

android debugging motionevent
3个回答
52
投票

这是你想要的:

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

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

资源:Motion EventStack Overflow


1
投票

你只需要打电话

requestDisallowInterceptTouchEvent(true);

在父视图上,像这样 -

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

            return false; 

         }

资料来源:onInterceptTouchEvent, onTouchEvent only see ACTION_DOWN


-1
投票

当拖动移出视图rect时,您将获得ACTION_CANCEL

© www.soinside.com 2019 - 2024. All rights reserved.