从子视图的 onTouchEvent(比如 ListView 中的 TextView),我想知道如果我想手动将此事件转发给它的父级,应该调用什么方法。
我知道我可以简单地从 TextView 的覆盖中调用 super.onTouchEvent(),但我想手动调用父视图。
我一直在查看源代码,并没有看到任何对效果的调用
parent.onTouchEvent(e)
所以想知道这是怎么做到的?
我在想也许这里有一个 viewTreeObserver 在玩,但不太确定。
谢谢你。
从子视图的 onTouchEvent(比如 ListView 中的 TextView),我想知道如果我想手动将此事件转发给它的父级,应该调用什么方法。
我知道我可以简单地从 TextView 的覆盖中调用 super.onTouchEvent(),但我想手动调用父视图。
我一直在查看源代码,并没有看到任何对效果的调用
parent.onTouchEvent(e)
所以想知道这是怎么做到的?
我在想也许这里有一个 viewTreeObserver 在玩,但不太确定。
谢谢你。
从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 中手动执行此操作。