美文网首页
ViewPager禁止手指滑动终极解决方案

ViewPager禁止手指滑动终极解决方案

作者: 吃惊馆长 | 来源:发表于2017-12-12 21:42 被阅读0次

网上有一些方案是重写onInterceptTouchEventonTouchEvent,经过测试还是会轻微的滚动。
完美解决使用如下代码

public class NoScrollViewPager extends ViewPager {
    public NoScrollViewPager(Context context) {
        super(context);
        setMyScroller();
    }

    public NoScrollViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
        setMyScroller();
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        // Never allow swiping to switch between pages
        return false;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // Never allow swiping to switch between pages
        return false;
    }

    //down one is added for smooth scrolling

    private void setMyScroller() {
        try {
            Class<?> viewpager = ViewPager.class;
            Field scroller = viewpager.getDeclaredField("mScroller");
            scroller.setAccessible(true);
            scroller.set(this, new MyScroller(getContext()));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public class MyScroller extends Scroller {
        public MyScroller(Context context) {
            super(context, new DecelerateInterpolator());
        }

        @Override
        public void startScroll(int startX, int startY, int dx, int dy, int duration) {
            super.startScroll(startX, startY, dx, dy, 350 /*1 secs*/);
        }
    }
}

原答案:https://stackoverflow.com/questions/9650265/how-do-disable-paging-by-swiping-with-finger-in-viewpager-but-still-be-able-to-s

相关文章

  • ViewPager禁止手指滑动终极解决方案

    网上有一些方案是重写onInterceptTouchEvent和onTouchEvent,经过测试还是会轻微的滚动...

  • ViewPager禁止滑动

    接着直接在布局里使用这个ViewPager 这样就可以禁止viewpager滑动

  • RecyclerView嵌套ViewPager冲突,viewpa

    Recyclerview嵌套viewpager,手指按在viewpager上向上滑动无效(首页banner轮播)。...

  • Viewpager禁止滑动

    前言 现在很多app,首页不允许滑动切换(因为页面加载吧),但是又用viewpage来管理frgament.因为方...

  • ViewPager禁止滑动

    ViewPager的滑动包括以下两个方面: 通过 Touch 触摸的形式进行; 使用遥控器,通过每个Page上面的...

  • 禁止ViewPager滑动

    项目实际需求中可能会有设置ViewPager禁止滑动的需求,此时需要重写ViewPager处理触屏事件

  • ViewPager 禁止滑动

    看到网上有千篇一律的解决方法,我亲测总结了两种方法 截断分发事件,这种方法适合viewpager嵌套使用 返回fa...

  • ViewPager禁止滑动

    一、简介: 有时项目中会有这样的需求:在ViewPager的里面再嵌入ViewPager,那么就有冲突了,简单粗暴...

  • 禁止滑动功能的自定义ViewPager

    /** 提供禁止滑动功能的自定义ViewPager*/public class NoScrollViewPager...

  • ViewPager滑动灵敏度调整

    ViewPager 手指滑动切换时会不灵敏,我们查看ViewPager源码,切换的判断是由mFlingDistan...

网友评论

      本文标题:ViewPager禁止手指滑动终极解决方案

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