0

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

4

1 回答 1

1

我认为您也应该使用自定义ViewGroup。为了得到你想要的,你应该重写这个onInterceptTouchEvent()方法,就像这里所说的:

onInterceptTouchEvent() 方法使父级有机会在其子级之前看到任何触摸事件。如果从 onInterceptTouchEvent() 返回 true,则之前处理触摸事件的子视图会收到一个 ACTION_CANCEL,并且从该点开始的事件将被发送到父视图的 onTouchEvent() 方法进行常规处理。onInterceptTouchEvent() 也可以返回 false 并在事件沿着视图层次结构向下移动到通常的目标时简单地监视事件,这些目标将使用自己的 onTouchEvent() 处理事件。

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

于 2013-04-21T21:07:10.050 回答