在viewpager对象绑定适配器之前,设置如下方法
viewpager .setOnTouchListener( new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true; //修改为true
}
});
上面的方法虽然简单,但确实可能出现可以慢慢滑动的情况,以下是更新,重写一个ViewPager,使用重写的ViewPager就没有问题了
/**
* Created by Suzi on 2016/11/14.
* 自定义ViewPage,可以设置ViewPager页面之间不能滑动
*/
public class MyViewPager extends ViewPager
{
/*
更改scrollble的值可设置是否可滑动,默认true为可滑动
*/
private boolean scrollble = true;
private int startX;
private int startY;
public MyViewPager(Context context)
{
super(context);
}
public MyViewPager(Context context, AttributeSet attrs)
{
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent ev)
{
if (!scrollble)
{
return true;
}
return super.onTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
switch (ev.getAction())
{
case MotionEvent.ACTION_DOWN:
startX = (int) ev.getX();
startY = (int) ev.getY();
break;
case MotionEvent.ACTION_MOVE:
// int dX = (int) (ev.getX() - startX);
int dY = (int) (ev.getY() - startX);
if (Math.abs(dY)>0) // 说明上下方向滑动了
{
return false;
} else
{
return true;
}
case MotionEvent.ACTION_UP:
break;
}
return super.onInterceptTouchEvent(ev);
}
public boolean isScrollble()
{
return scrollble;
}
public void setScrollble(boolean scrollble)
{
this.scrollble = scrollble;
}
}