如何锁定ViewPager以仅允许一次单击一次

时间:2015-04-01 09:58:05

标签: android android-viewpager

默认情况下,当您在ViewPager上滑动时,您可以滑动尽可能多的页面,直到手指到达屏幕的末尾。那么,无论用户刷了多少,是否可以强制ViewPager只允许一次页面更改?

这就是我的意思是在你的手指到达屏幕的末端之前滑过寻呼机: what I have

这就是我的意思,即锁定ViewPager一次只允许单个页面滑动: this is what I want to achieve

感谢。

2 个答案:

答案 0 :(得分:1)

好的,我认为答案是:延长ViewPager并覆盖onTouchEvent(MotionEvent ev)

private Rect viewRect = new Rect();

@Override
public boolean onTouchEvent(MotionEvent event) {

    getHitRect(viewRect);

    if (viewRect.contains(
        Math.round(view.getX() + event.getX()),
        Math.round(view.getY() + event.getY()))) {

        // touch is inside, do normal behavior
        return super.onTouchEvent(event);
    } else {
        // touch is outside, consume the event & do nothing
        return true;
    }
}

不幸的是,现在没有时间真正测试它,我稍后会更新。

答案 1 :(得分:1)

最后,我最终在适配器中进行了操作。我所做的是在2方法中返回getCount,在选择后重新排列项目,并在使用当前位置(0或1)访问数据集中的项目时专门处理案例。 / p>