美文网首页
Android事件分发

Android事件分发

作者: 做个快乐的代码哥 | 来源:发表于2019-08-22 19:49 被阅读0次

    1、事件分发,由父到子,及Activity->ViewGroup->View,

         三个函数: dispatchTouchEvent, onInterruptEvent(ViewGroup持有), onTouchEvent  

    2、手指按下事件down,系统代码执行过程; 

    1、调用Activity.dispatchTouchEvent

    2、默认情况下再去调用root ViewGroup.dispatchTouchEvent

    3、再去遍历root ViewGroup逐步匹配view,看事件是否被消费,及看View.dispatchTouchEvent是否返回true,如果返回true,那么就被消费

    4、调用view.dispatchTouchEvent,先判断是否有设置touchListener事件,如果有,就调用TouchListener的onTouch方法, 

             1、onTouch方法返回false,表示还未消费完事件,继续往下调用view.onTouchEvent方法

                  1.1 该view没有设置clickable或者点击事件,那么事件继续回传给父类的onTouchEvent执行

                   1.2如果有设置了clickable或者点击事件,那么该事件消费完毕

            2、onTouch方法返回true,表示已消费完事件,事件传递结束

    5、因此如果有设置,那么onTouch肯定先于onTouchEvent执行


    相关文章

      网友评论

          本文标题:Android事件分发

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