0

从子视图的 onTouchEvent(比如 ListView 中的 TextView),我想知道如果我想手动将此事件转发给它的父级,应该调用什么方法。

我知道我可以简单地从 TextView 的覆盖中调用 super.onTouchEvent(),但我想手动调用父视图。

我一直在查看源代码,并没有看到任何对效果的调用

parent.onTouchEvent(e)

所以想知道这是怎么做到的?

我在想也许这里有一个 viewTreeObserver 在玩,但不太确定。

谢谢你。

4

1 回答 1

1

从android api:

public boolean onTouchEvent (MotionEvent 事件) 在 API 级别 1 中添加

实现此方法来处理触摸屏运动事件。参数 event 运动事件。退货

True if the event was handled, false otherwise.

在父级、子级和子级中实现 on touch 侦听器,如果要传递事件,只需返回 false 并调用父方法。此触摸将迭代触摸层次结构,直到触摸被“消耗”

编辑 -

让父母尝试View.getParent();

TextView yourTV = (TV) findViewById(R.id.your_TV);
RelativeLayout yourRelLay = (RelativeLayout) yourTV.getParent();
yourRelLay.dispatchTouchEvent(motionEvent);

您可以在孩子的 onTouchEvent 中手动执行此操作。

于 2013-08-09T14:07:41.693 回答