Android 自定义ViewPager 禁止滑动

Android 自定义ViewPager 禁止滑动

ViewPager默认是可以手动切换的,实现自动切换,但是部分需求,我们是需要禁止ViewPager手动切换的, 这个时候就需要自定义ViewPager了,其实也很简单,原理就是拦截触摸事件,让ViewPager不处理onTouch事件,直接交给他的子控件去处理就行。具体代码如下:

1.首先创建CustomViewPager 继承ViewPager

/**
 * @Author: Su
 * @Date: 2022/11/30
 * @Description:
 */
public class CustomViewPager extends ViewPager {

    private boolean isCanScroll = true;

    public CustomViewPager(Context context) {
        super(context);
    }

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

    public void setScanScroll(boolean isCanScroll){
        this.isCanScroll = isCanScroll;
    }


    @Override
    public void scrollTo(int x, int y){
        if (isCanScroll){
            super.scrollTo(x, y);
        }
    }
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return false;
    }

}

2.在xml文件中添加自定义CustomViewPager

    <com.***.***.CustomViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/tab_layout"
        android:id="@+id/viewpager"></com.***.***.CustomViewPager>

3.在Activity中写入OnTouchListener

 //禁止滑动切换
        viewPager.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });

猜你喜欢

转载自blog.csdn.net/weixin_51522235/article/details/128182205