根据业务需要,禁止ViewPager左右滑动。我们需要重写ViewPager,重写里面的方法onTouchEvent、onInterceptTouchEvent。
public class MyViewPager extends ViewPager
{
private boolean noScroll = false;
public MyViewPager(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyViewPager(Context context)
{
super(context);
}
/**
* 设置ViewPager是否允许左右滑动
*
* @param noScroll
* 滑动参数boolean
*/
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);
}
}
我们可以通过调用setNoScroll(boolean noScroll)方法,来设置是否允许ViewPager左右滑动。
在对应的xml中调用是将该类的报名加上类名。即:
<com.my.ui.cell.MyViewPager
android:id="@+id/vPager"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_weight="1.0"
android:background="#ffffff"
android:flipInterval="30"
android:persistentDrawingCache="animation" />