说到ViewGroup拦截,首先想到 onInterceptTouchEvent

因为是MOVE的时候决定是否分发给子View,所以找到其中的 MOVE 事件,


第一处,先看一下返回值,在方法体中,return 的是 false,说明什么?
说明事件交给了子View处理,我们要做的呢,是横向滑动事件不交给子View
这里点进 canScroll 方法

看下面的 canScrollHorizontal 方法

- 是一个 public 修饰的方法,说明你可以重写它。
ViewPager 会挨个遍历子view,判断哪个View可以水平滑动,符合条件的,将会交给子View执行,至于交不交给子View,就是由 canScroll 中调用 canScrollHorizontal 决定的
ok,解决思路就是,创建一个类继承那个子View,重写 canScrollHorizontal ,直接return false 就好了
网友评论