一个方向ViewPager

时间:2015-04-19 18:15:53

标签: android android-viewpager android-view fragmentpageradapter

我正在尝试创建一个应用,用户可以在其中轻扫一副照片。向左或向右滑动后,应删除上一张照片并显示下一张照片。

Android的ViewPager似乎是理想的,除了它模拟幻灯片而不是卡片。当用户向左或向右滑动时,如何使其转到下一页?

可能这样做的一种方法是创建一组在任一方向上对称的页面。然后,如果ViewPager始终固定在这些页面的中间,那么它将显示在一个方向上移动。这似乎更像是一个黑客,所以我希望有人可能知道更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:-1)

您必须创建自己的ViewPager,扩展原始ViewPager并覆盖onTouchEvent方法

public class CustomViewPager extends ViewPager {

    float lastX = 0;

    boolean lockScroll = false;

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

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

    @Override
    public boolean onTouchEvent(MotionEvent ev) {

        switch (ev.getAction()) {
        case MotionEvent.ACTION_DOWN:
            lastX = ev.getX();
            lockScroll = false;
            return super.onTouchEvent(ev);
        case MotionEvent.ACTION_MOVE:

            if (lastX > ev.getX()) {
                lockScroll = false;
            } else {
                lockScroll = true;
            }

            lastX = ev.getX();
            break;
        }

        lastX = ev.getX();

        if(lockScroll) {
            return false;
        } else {
            return super.onTouchEvent(ev);
        }

    }
}