ViewPager防止滑动到某个位置

时间:2015-08-29 18:56:20

标签: android android-viewpager

我希望用户无法在viewpager小部件中滑动到某些位置。因为我希望他们通过按钮按去那里我做一些背景工作。例如,对于位置0和3,我不希望他们通过滑动去那里。那怎么办呢?

这是我的自定义视图寻呼机

public class SmoothViewPager  extends ViewPager{

public SmoothViewPager(Context context) {
    super(context);
}

public SmoothViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
}

/* @Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    // Never allow swiping to switch between pages
    return false;
}

 @Override
 public boolean onTouchEvent(MotionEvent event) {
    // Never allow swiping to switch between pages
    return false;
}*/

@Override
void smoothScrollTo(int x, int y, int velocity) {
    super.smoothScrollTo(x, y, 1);
 }
}

1 个答案:

答案 0 :(得分:0)

将上述ViewPager代码修改为如下

public class SmoothViewPager extends ViewPager {

    private boolean mAllowScroll = true;

    public SmoothViewPager(Context context) {
        super(context);
    }

    public SmoothViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        return mAllowScroll;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return mAllowScroll;
    }

    public void setScroll(boolean allowScroll) {
        mAllowScroll = allowScroll;
    }

}

这里我们使用布尔值mAllowScroll来切换是否允许滚动之间的状态。从OnPageChangeListener()onPageSelected()方法调用setScroll()方法。根据用户所在的页码切换布尔值。