如何传播MotionEvent但仍然接收Android中ACTION_DOWN之后的所有事件?

时间:2017-08-16 11:18:09

标签: android ontouchlistener motionevent ontouch event-propagation

我正在开发一个SDK,在其中我从两个不同的类中设置OnTouchListener到2个不同的视图,每个类都需要处理相同的触摸事件。

到目前为止,我只需要其中一个ACTION_DOWN事件,所以方法编写如下:

@Override
public boolean onTouch(View v, MotionEvent event) {
    ABLogger.d("onTouch Walkthrough handler");
    if (event.getAction() != MotionEvent.ACTION_DOWN) {
        return false;
    }

    return onAction(v, event);
}

当我收到传递ACTION_DOWN的{​​{1}}事件作为返回值时它运行良好,并且以下事件将传播到下一个视图及其侦听器。

现在我需要在这个方法中测试滚动没有被提交,为了做到这一点,我需要在这里接收false事件。但是除非我在这种方法的回归中通过ACTION_UP,否则我不会收到它。但是如果我这样做,那么下一个听众就不再接收这些事件了。

问题是:我如何收到两个听众中的所有事件,或者至少收到其中一个事件中的事件并强制它将事件传递给第二个?< / p>

0 个答案:

没有答案