实现viewpager不能左右滑动效果

来源:互联网 发布:传说之下 知乎 编辑:程序博客网 时间:2024/05/16 16:58

主题思路:重写viewpager的onInterceptTouchEvent()方法,当返回值为false的时候左右不能滑动。具体代码如下:

public class MyViewPager extends ViewPager {    private boolean isCanScroll = false;    public MyViewPager(Context context) {        super(context);    }    public MyViewPager(Context context, AttributeSet attrs) {        super(context, attrs);    }    public void setScanScroll(boolean isCanScroll) {        this.isCanScroll = isCanScroll;    }    @Override    public void scrollTo(int x, int y) {        super.scrollTo(x, y);    }    @Override    public boolean onTouchEvent(MotionEvent arg0) {        // TODO Auto-generated method stub        if (isCanScroll) {            return super.onTouchEvent(arg0);        } else {            return false;        }    }    @Override    public void setCurrentItem(int item, boolean smoothScroll) {        // TODO Auto-generated method stub        super.setCurrentItem(item, true);    }    @Override    public void setCurrentItem(int item) {        // TODO Auto-generated method stub        super.setCurrentItem(item,true);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent arg0) {        // TODO Auto-generated method stub        if (isCanScroll) {            return super.onInterceptTouchEvent(arg0);        } else {            return false;        }    }}
使用的时候只要调用viewpager.setScanScroll(false)即可

0 0