从子视图的onTouchEvent(比如ListView中的TextView),如果我想手动将此事件转发给其父级,我想知道要调用哪种方法。
我知道我可以简单地从TextView的覆盖中调用super.onTouchEvent(),但我想手动调用父视图。
我一直在查看来源,并没有看到任何调用
的影响parent.onTouchEvent(e)
所以想知道如何做到这一点?
我想也许这里有一个viewTreeObserver,但不太确定。
谢谢。
答案 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中手动执行此操作。