3

我需要嵌套几个触摸监听器。例如,我有一个 ViewGroup,它将具有以下侦听器:onItemClick、onLongItemClick 和 onTouch.EV == move。

视图组内的项目也将有一个 onClick。

在我的测试中,两组听众独立工作,但不是相互依赖的。有什么办法可以将听众组联系起来吗?

谢谢,~Aedon

4

2 回答 2

3

我不确定,但也许您可以将触摸事件从根视图分派到其子视图(从活动开始)

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (ChildView.dispatchTouchEvent(event))
        return true;
    else
        return false;
}

用户单击按钮后,将触摸事件分派回根视图。

于 2011-03-01T00:38:07.227 回答
2

所有事件都从根视图传播到子视图。如果一个视图不想处理一个事件,它会将它传递给它的子视图。如果一个视图消耗了一个事件,比如点击一个 ViewGroup,你可以让它慢慢下降或阻止它。通常从事件回调中返回 false 表示事件未处理,返回 true 表示事件已处理并且不会提供给任何其他视图。

假设您在 ViewGroup 中有一个按钮。如果按下按钮,ViewGroup 将首先接收事件,它可以选择不将事件传递给其子级,在这种情况下,按钮将不会响应单击。

于 2011-02-28T18:57:24.917 回答