2

在 Android 中,提供单向水平导航的最佳方式是什么?为了设定期望,我在两个月前开始编写 Android 应用程序。

在我的情况下,我有一个屏幕大小的图像列表,用户将一一看到。要查看下一张图像,用户必须向左滑动(从右到左运动)。一旦看到图像,用户就不能返回,因此必须禁用右滑动(从左到右运动)。

我使用了自定义 ViewPager 来实现这一点,其中我覆盖了 onTouchEvent 方法,如下所示:

@Override
public boolean onTouchEvent(MotionEvent ev) {

        boolean lockScroll = false;

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

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

            lastX = ev.getX();
            break;
        }

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

这主要工作。我的意思是几乎总是正确的滑动被阻止,但在某些情况下它会发生,我无法弄清楚为什么。任何线索,问题可能出在哪里,或者有没有其他方法可以处理这种情况?

谢谢!

4

2 回答 2

2

欢迎来到安卓开发!您将很快学到的一件事就是永远不要实现已经开源的东西。我建议使用https://github.com/nostra13/Android-Universal-Image-Loader的图库功能,如果你或我自己制作它,它看起来会好很多,并且会更强大。

于 2013-08-02T20:16:15.180 回答
1

看看ViewPager#canScrollHorizo​​ntally。它是压倒一切的主要候选人。

于 2013-08-02T20:15:17.983 回答