美文网首页自定义控件
ViewPager如何拦截子View的横向滑动

ViewPager如何拦截子View的横向滑动

作者: 楷桐 | 来源:发表于2018-06-07 11:43 被阅读330次

说到ViewGroup拦截,首先想到 onInterceptTouchEvent


onInterceptTouchEvent

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


image.png

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

这里点进 canScroll 方法


看下面的 canScrollHorizontal 方法


  • 是一个 public 修饰的方法,说明你可以重写它。

ViewPager 会挨个遍历子view,判断哪个View可以水平滑动,符合条件的,将会交给子View执行,至于交不交给子View,就是由 canScroll 中调用 canScrollHorizontal 决定的

ok,解决思路就是,创建一个类继承那个子View,重写 canScrollHorizontal ,直接return false 就好了

相关文章

网友评论

    本文标题:ViewPager如何拦截子View的横向滑动

    本文链接:https://www.haomeiwen.com/subject/rpzwsftx.html