Android 禁止Viewpager左右滑动功能

Posted derekhan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 禁止Viewpager左右滑动功能相关的知识,希望对你有一定的参考价值。

做项目要求某种情况下ViewPager不能滑动

百度后发现重写ViewPager,覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么ViewPager就不会消耗掉手指滑动的事件了

public class NoScrollViewPager extends ViewPager 
    
    private boolean noScroll = false;
 
    public NoScrollViewPager(Context context, AttributeSet attrs) 
        super(context, attrs);
    
 
    public NoScrollViewPager(Context context) 
        super(context);
    
 
    public void setNoScroll(boolean noScroll) 
        this.noScroll = noScroll;
    
 
    @Override
    public void scrollTo(int x, int y) 
        super.scrollTo(x, y);
    
 
    @Override
    public boolean onTouchEvent(MotionEvent arg0) 
        if (noScroll)
            return false;
        else
            return super.onTouchEvent(arg0);
    
 
    @Override
    public boolean onInterceptTouchEvent(MotionEvent arg0) 
        if (noScroll)
            return false;
        else
            return super.onInterceptTouchEvent(arg0);
    
 
    @Override
    public void setCurrentItem(int item, boolean smoothScroll) 
        super.setCurrentItem(item, smoothScroll);
    
 
    @Override
    public void setCurrentItem(int item) 
        super.setCurrentItem(item);
    
 

 

以上是关于Android 禁止Viewpager左右滑动功能的主要内容,如果未能解决你的问题,请参考以下文章

Android禁止ViewPager左右滑动

114Android禁止ViewPager的左右滑动

ViewPager1嵌入ViewPager2,两者重叠,怎么禁止ViewPager1的滑动功能?

Flutter PageView 禁止滑动

android viewpager滑动与slidingpanelayout冲突怎么解决

如何禁止Gridview上下滑动