【问题标题】:Does onInterceptTouchEvent() really works as the sdk said?onInterceptTouchEvent() 真的像 sdk 说的那样有效吗?
【发布时间】:2011-09-25 01:20:59
【问题描述】:

这个sdk说:

3、只要你从这个函数返回false,后面的每个事件(直到并包括最终的up)都会先在这里传递,然后再传递到目标的onTouchEvent()。

4、如果你从这里返回true,你将不会收到任何以下事件:目标视图将收到相同的事件但带有动作ACTION_CANCEL,并且所有进一步的事件将被传递到你的onTouchEvent()方法并且不再出现在这里。

但是当我使用这个方法时,无论 onInterceptTouchEvent() 返回什么,它都做同样的工作! MotionEvent.ACTION_MOVE 或 MotionEvent.ACTION_UP 从未被此方法捕获。谁能帮我解决一下?

这个!

【问题讨论】:

    标签: android


    【解决方案1】:

    通常触摸从最上方的视图通过onInterceptTouchEvent 到最低视图,然后通过onTouchEvent 返回。

    如果您在onInterceptTouchEvent 中返回 true,则您禁止它继续,并且您返回 true 的视图是最后一个接收到触摸的视图,您使用它

    您还可以通过以下方式禁止您的父视图使用该事件 requestDisallowInterceptTouchEvent(true);

    【讨论】:

      【解决方案2】:

      当您的视图的子视图在 onTouchEvent 中没有返回 true 时,只会为 MotionEvent.ACTION_DOWN 调用 onInterceptTouchEvent。

      Here is a complete description of the MotionEvent processing.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-18
        • 1970-01-01
        相关资源
        最近更新 更多