手动将视图的onTouchEvent传递给它的父级

时间:2013-08-09 13:50:20

标签: android

从子视图的onTouchEvent(比如ListView中的TextView),如果我想手动将此事件转发给其父级,我想知道要调用哪种方法。

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

我一直在查看来源,并没有看到任何调用

的影响
parent.onTouchEvent(e)

所以想知道如何做到这一点?

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

谢谢。

1 个答案:

答案 0 :(得分:1)

来自android api:

  

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

     

实现此方法以处理触摸屏动作事件。参数   事件动作事件。返回

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中手动执行此操作。