Viewpager禁止左右滑动

通常我们在做类似QQ向右滑动出现侧滑菜单的时候,要控制viewpager不能左右滑动,如果viewpager可以左右滑动,就会出现TouchEvent的冲突。接下来就为大家介绍下如何禁止viewpager左右滑动。其实这类问题我们都可以通过重写viewpager来实现,直接上代码,清晰明了。

public class CustomViewPager extends ViewPager {


private boolean isCanScroll = false;//控制viewpager的是否能够左右滑动


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) {
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, smoothScroll);
}


@Override
public void setCurrentItem(int item) {
// TODO Auto-generated method stub
super.setCurrentItem(item);
}


@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
if (isCanScroll) {
return super.onInterceptTouchEvent(arg0);
} else {
return false;
}


}


}


你可能感兴趣的:(Android)