在Android中,onInterceptTouchEvent和onTouchEvent都是用来处理Touch操作的函数。

其中onTouchEvent在View和ViewGroup类中都有,而onInterceptTouchEvent只在ViewGroup类中有。

在ViewGroup中onInterceptTouchEvent和onTouchEvent协作,使相应的ViewGroup(View)去处理相应的Touch事件。

ViewGroup可以嵌套多层ViewGroup,Touch事件最先被最外层的ViewGroup接收,向内一层层传递,最终传递到最内层的ViewGroup(View)。内层的ViewGroup(View)最先处理Touch事件,处理完之后向外一层层传递,每一层依次处理该Touch事件。

实际上,每一曾的ViewGroup都可以决定Touch事件是否要继续向内/向外传递。

通常情况下,如果使用系统自带的ViewGroup,Touch事件会从最外层传递到最内层,再从最内层处理到最外层。而我们自定义的ViewGroup则不必这样,我们可以通过自定义onInterceptTouchEvent和onTouchEvent的返回值,决定是否还要将Touch事件向内/向外传递,还是将当前的ViewGroup就当做最外层/最内层的来处理。

onInterceptTouchEvent的返回值用来决定Touch事件是否继续向内层传递(是否拦截这个Touch事件):return true:拦截,Touch事件不再向内层传递return false:不拦截,Touch事件继续向内层传递
onTouchEvent的返回值用来决定Touch事件是否继续向外层传递(是否已经消费(consume)掉这个事件):return true:Touch事件已经被消费,不再向外层传递return false:Touch事件还没有被完全消费,继续向外层传递

更多相关文章

  1. android触屏事件处理onInterceptTouchEvent的问题
  2. Android 仿滴滴首页嵌套滑动效果
  3. Android ListView:实现item内部控件的点击事件
  4. Android触摸事件分发
  5. Android的MotionEvent事件分发机制
  6. Android Touch 触摸事件
  7. 源码解析Android中的事件处理
  8. 【Android每周专题】触摸屏事件

随机推荐

  1. Android(安卓)App的国际化-代码里实现
  2. Android(安卓)8.1 【FriendlyARM】读取 B
  3. Android(安卓)打正式包报错:Execution fai
  4. Intent.ACTION_TIME_TICK的正确用法
  5. 在Android(安卓)5.0中使用JobScheduler
  6. Android(安卓)Storage Manager
  7. Android引路蜂地图开发示例:地址反编码
  8. Android(安卓)Studio中AIDL使用方法
  9. Android进程通信之Messenger&AIDL使用详
  10. Android实现BMP和PNG转换为JPEG格式