滑动水平

时间:2012-11-15 14:18:35

标签: android viewpage

我需要在广播组中的问题列表和各自的选择之间水平滑动。我读过我有不同的选择,例如: 1-手势探测器 2- ViewPage 3-带有片段的ViewPage

我已经尝试过ViewPage但是我面临着如何向后滑动并指示用户已选中哪个选项的不同问题。 我需要使用最简单的方法向前和向后滑动(指示已选中的选项)

我希望尽可能依赖Andriod方法,而不是自己存储选中的选项,因为我相信它是运行时或代码大小更优化的这种方法。 如果还有其他可以使用的课程,请指导我,或者哪些课程最适合我的目标

3 个答案:

答案 0 :(得分:1)

我会将ViewPagerFragmentPagerAdapter一起使用。适配器的项目将是同一片段的不同实例。每个片段都包含一个静态问题文本和一个可能的问题答案的无线电组。 ViewPager然后将用另一个这样的片段替换一个这样的片段。

答案 1 :(得分:0)

我强烈推荐这个图书馆:

ViewPagerIndicator by Jake Warton

非常可定制。

答案 2 :(得分:0)

您可以轻松地使用手势检测器创建一个扩展SimpleOnGestureListener的类,该类具有onFling方法,如下所示:

protected class ExampleGestureDetector extends SimpleOnGestureListener {
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

        if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {// User swipe vertically
        }
        if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_MIN_VELOCITY) {// Right swipe
        } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_MIN_VELOCITY) {// Left swipe
        }
        return false;
    }

}

您只需要根据需要定义变量,就像

一样创建一个gestureDetector
gestureDetector = new GestureDetector(new ExampleGestureDetector());

并为您想要的视图重新定义触控侦听器

view.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View wv, MotionEvent event) {
                return gestureDetector.onTouchEvent(event);
            }
        });

编辑:测试后,它似乎只适用于可滚动项目。

相关问题