1、父容器拦截了事件。
2、viewgroup移除当前view。
3、window移除当前view
如果ViewGroup拦截了Move事件,那么这个Move事件将会转化为Cancel事件传递给子view。
ACTION_CANCEL作用
我们知道如果某一个子View处理了Down事件,那么随之而来的Move和Up事件也会交给它处理。但是交给它处理之前,父View还是可以拦截事件的,如果拦截了事件,那么子View就会收到一个Cancel事件,并且不会收到后续的Move和Up事件。
FLAG_DISALLOW_INTERCEPT的作用
即使是MOVE和UP事件,在传递给子View之前也是可以通过ViewGroup的onInterceptTouchEvent方法拦截的,如果拦截了,那么该事件就会变成Cancel事件传递给子view。
那么是否有办法,子view不让ViewGroup拦截时间呢?
如果设置了FLAG_DISALLOW_INTERCEPT
这个flag,那么ViewGoup则不会拦截Move和Up事件。