zoukankan      html  css  js  c++  java
  • 滑动冲突的补充——Event的流程走向

    一、之前分析的滑动冲突,并没有讲述event事件是如何分发到不同的控件

    View的滑动冲突

    现在分析一下滑动冲突event事件的流向

    假设:  我们的一个事件为  点下——>左滑动一次——>松手   这三个为该事件的子事件

    点下:

    当点击屏幕的时候,点击事件会从Activity层 经过 Window 到 DecoreView,并调用DecoreView的dispatchTouchEvent()方法向下分发。

    根据上次的文章,会先分发到HorizonLayout控件中,调用dispatchTouchEvent()方法,根据View的事件分发机制进入到onInterceptTouchEvent()中,根据代码,我们选择不拿到该事件,之后事件会传给下面的ListView,调用子类的onTouchEvent()方法,ListView选择拿到该事件。

    滑动一次:

    当ListView消耗完成“点下”事件的时候,Android就会发送“滑动一次事件”,步骤同上,调用DecoreView的dispathTouchEvent()方法,然后根据 判断“子类获取到了总事件(因为拿到了ACTION_DOWN事件)” 还是会调用onIntercepTouchEvent(),这时候onInterceptTouchEvent()拿到事件。则调用其onTouchEvent()方法,就代表子类的事件被截取了,则子类就不拿到事件,交给了父类的onTouchEvent()方法,所以这时候父类的onInterceptTouchEvent()也就不会被调用了,直接调用父类的onTouchEvent()方法。

    松手:

    因为事件被父类的onTouchEvent()截取了,所以最后就是调用父类的onTouchEvent()方法。

  • 相关阅读:
    windows server2008自动登录
    WindosServer2008 激活问题。
    [转]10分钟写出你的第一个包含CRUD的Rails程序
    SQL 2008操作相关
    没有域环境安装SharePoint2010
    D3D10彻底抛弃了固定图形管线
    MultiUser01 – 简介
    6种Socket I/O 模型性能比较,图
    Dr程序耗尽了CPU
    IDXGIOutput接口
  • 原文地址:https://www.cnblogs.com/rookiechen/p/5560747.html
Copyright © 2011-2022 走看看