Android中事件处理方法返回的布尔值是什么意思?

在android中,大多数事件侦听器方法返回一个布尔值。 真/假值是什么意思? 它会导致后续事件?

class MyTouchListener implements OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) { logView.showEvent(event); return true; } } 

对于上面的例子,如果在onTouch方法中返回true,我发现每个触摸事件(DOWN,UP,MOVE等)都是根据我的logView捕获的。 相反,如果返回错误,则仅捕获DOWN事件。 所以看起来返回false将阻止事件传播。 我对么 ?

而且,在OnGestureListener中 ,许多方法也必须返回一个布尔值。 他们有相同的意思吗?

如果您从ACTION_DOWN事件返回true ,那么您对该手势中的其余事件感兴趣。 在这种情况下,“手势”意味着所有的事件,直到最后的ACTION_UPACTION_CANCEL 。 从ACTION_DOWN返回false表示您不希望事件和其他视图有机会处理它。 如果你有重叠的意见,这可以是兄弟姐妹的观点。 如果没有,它会冒泡到父母身上。

从文档: http : //developer.android.com/reference/android/view/View.OnTouchListener.html#onTouch (android.view.View,android.view.MotionEvent)

“如果听众已经消费了事件,则为真,否则为假。”

如果返回true,则处理该事件。 如果为false,则会进入下一层。

布尔值确定事件是否被消耗。

是的,你是对的。 如果您返回false,则下一个侦听器将处理该事件。 如果返回true,则该事件将被您的侦听器使用,而不会发送到下一个方法。

我在故障排除方面失去了将近一天的时间,但我仍然发现,使用false时,我的onTouch函数被调用了2次,在使用false时被调用了1次。