美文网首页Android进阶之路Android开发经验谈Android开发
Android 事件传递机制(一) -- onIntercept

Android 事件传递机制(一) -- onIntercept

作者: 浪够_ | 来源:发表于2018-05-16 19:21 被阅读22次
    先看一下ViewGroup的事件传递机制流程图:
    WechatIMG61.jpeg

    实现onInterceptTouchEvent方法可以用来拦截父ViewGroup传递下来的所有触屏事件,可以将所有触屏事件交由此ViewGroup自身的onTouchEvent来处理,也可以继续传递给其子View来处理,该方法是ViewGroup中才有的方法

    1. down事件首先传递到onInterceptTouchEvent方法中

    2. onInterceptTouchEvent返回false表示将down事件交由子View来处理;若某一层子View的onTouchEvent返回了true,后续的move、up等事件都将先传递到ViewGroup的onInterceptTouchEvent的方法,并继续层层传递下去,交由子View处理;若子View的onTouchEvent都返回了false,则down事件将交由该ViewGroup的onTouchEvent来处理;如果ViewGroup的onTouchEvent返回false,down传递给父ViewGroup,后续事件不再传递给该ViewGroup;如果ViewGroup的onTouchEvent返回true,后续事件不再经过该ViewGroup的onInterceptTouchEvent方法,直接传递给onTouchEvent方法处理

    3. onInterceptTouchEvent返回ture,down事件将转交该ViewGroup的onTouchEvent来处理;若onTouchEvent返回true,后续事件将不再经过该ViewGroup的onInterceptTouchEvent方法,直接交由该ViewGroup的onTouchEvent方法处理;若onTouchEvent方法返回false,后续事件都将交由父ViewGroup处理,不再经过该ViewGroup的onInterceptTouchEvent方法和onTouchEvent方法

    相关文章

      网友评论

        本文标题:Android 事件传递机制(一) -- onIntercept

        本文链接:https://www.haomeiwen.com/subject/dtvydftx.html