android - Android 中事件处理方法返回的 bool 值的含义是什么

标签 android events touch return listener

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

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

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

此外,在OnGestureListener中,许多方法也必须返回 bool 值。它们的含义相同吗?

最佳答案

如果您从 ACTION_DOWN 事件返回 true,则您对该手势中的其余事件感兴趣。在这种情况下,“手势”是指直到最终 ACTION_UPACTION_CANCEL 之前的所有事件。从 ACTION_DOWN 返回 false 意味着您不希望该事件发生,其他 View 将有机会处理它。如果您有重叠 View ,这可以是同级 View 。如果没有,它将冒泡到父级。

关于android - Android 中事件处理方法返回的 bool 值的含义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39406829/

相关文章:

javascript - 什么时候使用 WL.App.sendActionToNative?

c# - 如何为 INotifyPropertyChanged 接口(interface)创建自己的 PropertyChangedEventArgs?

javascript - 如何使用 Javascript(不是 html)用 onclick 事件声明事件对象?

Android——canvas绘图疑惑

android - 即使在适配器上调用 notifyDataSetChange() 后,抽屉导航 ListView 也不会更新新项目

android - 是否可以在 uiautomator 中滑动打开/关闭抽屉导航

android - 如何修复 (android.database.CursorWindowAllocationException) 崩溃

wpf - 为 WPF 中的所有元素事件添加监听器

objective-c - SingleTouch-View 中的第二根手指触发 touchesMoved

javascript - 仅当支持触摸事件时才使用 Bootstrap 工具提示?