Android滑动冲突根据情况,分为3种:
1.外层为横向,内层为竖向。
2.外层为竖向,内层为竖向。
3.外层为横向,内层1为竖向,内层2为竖向。
解决办法分为如下两种:
1.外部拦截法
定义:点击事件先经由父容器的拦截处理,如果父容器需要就拦截,不需要就不拦截。
方法:父容器重写onInterceptTouchEvent方法,内部根据业务逻辑做相应的拦截。
2.内部拦截法
定义:父容器不拦截任何事件,所有事件都传递给子元素,如果子元素需要此事件,就直接消费掉,否则就交由父容器进行处理。
方法:需要配合requestDisallowInterceptTouchEvent方法,重写子元素的dispatchTouchEvent方法。
网友评论