3

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

我尝试过 ViewPage,但在如何向后滑动和指示用户检查了哪个选项方面遇到了不同的问题。我需要使用最简单的方法来向前和向后滑动(表示已选中哪个选项)

我想尽可能多地依赖 Andriod 方法,而不是自己存储检查的选择,因为我相信它从运行时或代码大小都更优化了这些方法。如果还有其他我可以使用的课程,请指导我,或者其中哪一个真的最适合我的目标

4

3 回答 3

1

我会用ViewPager一个FragmentPagerAdapter. 适配器的项目将是同一片段的不同实例。每个片段将包含一个静态问题文本和一组可能的问题答案。 ViewPager然后将负责用另一个这样的片段替换一个这样的片段。

于 2012-11-15T14:24:20.767 回答
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);
            }
        });

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

于 2012-11-15T14:48:28.597 回答
0

我强烈推荐这个库:

杰克沃顿的 ViewPagerIndicator

非常可定制。

于 2012-11-15T14:37:49.113 回答