防止兄弟姐妹的OnTouchEvent

时间:2013-04-21 19:45:49

标签: android ontouchevent motionevent

如何从视图的兄弟姐妹中阻止onTouchEvent?我有一个带有自定义按钮的ViewGroup。当按钮收到OnTouchEvent时,我想阻止进一步的OnTouchEvents转到按钮的兄弟姐妹。我想要继续在按钮中接收OnTouchEvent。

1 个答案:

答案 0 :(得分:0)

我认为您也应该使用自定义ViewGroup。为了获得您想要的内容,您应该覆盖onInterceptTouchEvent()方法,如所述的here

  

onInterceptTouchEvent()方法为父级提供了查看的机会   孩子们之前的任何触摸事件。如果你从中返回true   onInterceptTouchEvent(),以前处理的子视图   触摸事件接收ACTION_CANCEL,以及从该点开始的事件   forward通常会被发送到父进程的onTouchEvent()方法   处理。 onInterceptTouchEvent()也可以返回false并且只是间谍   在事件中,他们沿着视图层次结构向前移动   目标,它将使用自己的onTouchEvent()来处理事件。

基本上,根据您自己的逻辑(按钮onTouchEvent等),如果ViewGroup.onInterceptTouchEvent()原始坐标不包含在您的可见矩形中,您应该指示您的MotionEvent返回true按钮。