0

我希望在特定视图的每个触摸事件上触发我的回调。我发现了类似的问题:View.onTouchEvent 仅注册 ACTION_DOWN 事件,没有直接答案。

如果true从中返回,onTouch()则报告属于同一触摸的更多事件(例如ACTION_MOVE),但流程被中断并且不会发生正常的事件处理(例如,视图未进入按下状态)。

如果返回falseor super.onTouchEvent,则只ACTION_DOWN报告其他操作,而不报告其他操作,并且正常处理正确发生(例如,视图进入按下状态)。不幸的是,其他回调onInterceptTouchEvent()也没有被调用。

我希望在所有触摸事件(等)上都得到通知ACTION_DOWNACTION_MOVE并且不中断正常处理(例如,视图在触摸时应该进入正确状态)。如何实现这种行为?

4

1 回答 1

0

您可以尝试像这样扩展您的特定View并覆盖dispatchTouchEvent

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    handleTouch(ev);
    return super.dispatchTouchEvent(ev);
}

并实现 handleTouch 做任何你想做的事,而不会破坏正常的流程。

于 2013-10-11T11:11:33.733 回答