美文网首页
Android高级进阶:Android触摸事件传递机制

Android高级进阶:Android触摸事件传递机制

作者: 喝茶就困 | 来源:发表于2018-12-26 23:28 被阅读0次

    Android事件分为三部分:

    1、分发:public boolean dispatchTouchEvent(MotionEvent ev)
    2、拦截:public boolean onInterceptTouchEvent(MotionEvent ev) 
    3、消费:public boolean onTouchEvent(MotionEvent event)
    
    其中拦截onInterceptTouchEvent是ViewGroup组件独有
    

    自上而下嵌套层级:Activity——>ViewGroup——>子View

    子View消耗事件情况下的响应顺序:自上而下,事件消费后终止传递,子View的onClick事件是在Up之后才响应。down事件结束于ChildView onTouchEvent

    E/MainActivity: 0 dispatchTouchEvent
    E/GroupText: dispatchTouchEvent
    E/GroupText: onInterceptTouchEvent
    E/ChildView: dispatchTouchEvent
    E/ChildView: 0 onTouchListener
    E/ChildView: onTouchEvent
    E/MainActivity: 1 dispatchTouchEvent
    E/GroupText: dispatchTouchEvent
    E/GroupText: onInterceptTouchEvent
    E/ChildView: dispatchTouchEvent
    E/ChildView: 1 onTouchListener
    E/ChildView: onTouchEvent
    E/ChildView: onClick
    

    子View不消耗事件的情况:down事件从Activity自上而下传递到子View又自下而上返回到Activity,up事件结束在Activity onTouchEvent

    E/MainActivity: 0 dispatchTouchEvent
    E/GroupText: dispatchTouchEvent
    E/GroupText: onInterceptTouchEvent
    E/ChildView: dispatchTouchEvent
    E/ChildView: 0 onTouchListener
    E/ChildView: onTouchEvent
    E/GroupText: onTouchEvent
    E/MainActivity: 0 onTouchEvent
    E/MainActivity: 1 dispatchTouchEvent
    E/MainActivity: 1 onTouchEvent
    

    相关文章

      网友评论

          本文标题:Android高级进阶:Android触摸事件传递机制

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