自定义控件(五)禁止滑动的ViewPager

来源:互联网 发布:心理学入门 知乎 编辑:程序博客网 时间:2024/04/29 00:21

禁止ViewPager的滑动需要重写onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法都是boolean类型的,将方法最后返回false即可。

代码示例

public class NoScrollViewPager extends ViewPager {    private boolean noScroll = true;    public NoScrollViewPager(Context context, AttributeSet attrs) {        super(context, attrs);        // TODO Auto-generated constructor stub    }    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) {        /* return false;//super.onTouchEvent(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);    }}
0 0