安卓Touch分发拦截触摸机制
💡
原文中文,约400字,阅读约需1分钟。
📝
内容提要
dispatchTouchEvent、onInterceptTouchEvent 和 onTouchEvent 是 Android 开发中的三个重要方法。它们控制触摸事件的处理过程。通过设置这些方法的返回值,开发者可以控制触摸事件是否应该被分发、拦截或消费。需要注意的是,默认行为是分发,而不是拦截,也不是消费触摸事件。
🎯
关键要点
- dispatchTouchEvent 方法控制触摸事件的分发,返回 true 不分发,返回 false 是分发(默认)。
- onInterceptTouchEvent 方法控制触摸事件的拦截,返回 false 不拦截(默认),返回 true 拦截。
- onTouchEvent 方法控制触摸事件的消费,返回 false 不消费(默认),返回 true 不消费(触摸结束)。
- View 没有 onInterceptTouchEvent 方法,因为它没有子视图。
- 默认情况下,点击里层的 View 时,首先响应消费的是里层的 View,只有在里层不消费的情况下,才会传递给父层。
- 如果 ViewGroup 的 onInterceptTouchEvent 方法不拦截事件,则事件会返回给上一层。
➡️