支持Android小部件中的单向滑动

时间:2013-08-02 20:10:36

标签: android android-viewpager

在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);
        }
}

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

相关问题