如果我向下滑动,就拦截事件,自己处理,否则不拦截,传给子view处理
它确实正确执行
下滑:
上滑:
但是如果我先下滑然后上滑,并且中间没有松开手指,它就没有上滑的效果
反之,先上滑然后下滑,并且中间没有松开手指,它就没有下滑的效果
我想要上滑下滑都可以,该如何完成这个事件的转变
您的每一个用心回答,都会让这个世界变得更美好一些!
搞定了,如果在onInterceptToutchEvent返回true拦截的话(会执行当前ViewGroup的onToutchEvent , 所以上面我可以在onToutchEvent处理事件),子view会收到ACTION_CANCEL事件,在一次完整的事件中,收到ACTION_CANCEL之后,就不会收到后续的Move和Up事件.
尽管后面onInterceptToutchEvent已经不满足拦截条件,但子View被cancel掉了,所以就收不到后续的MOVE了;
解决:
我选择在当前view的dispatchTouchEvent中满足条件返回true拦截,这样事件同样不会向下分发,但子View不会CANCEL,不满足条件时后续的事件还可以收到;(dispatchTouchEvent返回true拦截后,不会执行当前view的onToutchEvent,因此不能在onToutchEvent处理事件,这里我选择在dispatchTouchEvent里处理事件)
嗯,我的理解是这样的
有没有一种可能 就是你上下滑相加小于你的滑动系数呢
你下滑都做到了,那就考虑方向问题咯。
搞定了,如果在onInterceptToutchEvent返回true拦截的话(会执行当前ViewGroup的onToutchEvent , 所以上面我可以在onToutchEvent处理事件),子view会收到ACTION_CANCEL事件,在一次完整的事件中,收到ACTION_CANCEL之后,就不会收到后续的Move和Up事件.
尽管后面onInterceptToutchEvent已经不满足拦截条件,但子View被cancel掉了,所以就收不到后续的MOVE了;
解决:
我选择在当前view的dispatchTouchEvent中满足条件返回true拦截,这样事件同样不会向下分发,但子View不会CANCEL,不满足条件时后续的事件还可以收到;(dispatchTouchEvent返回true拦截后,不会执行当前view的onToutchEvent,因此不能在onToutchEvent处理事件,这里我选择在dispatchTouchEvent里处理事件)
嗯,我的理解是这样的
有没有一种可能 就是你上下滑相加小于你的滑动系数呢
你下滑都做到了,那就考虑方向问题咯。