水平滑动

3
我需要在一个单选按钮组中,在问题列表和它们各自的选项之间进行水平滑动。我已经了解到我有不同的选择,例如: 1- Gesture Detector手势检测器 2- ViewPage视图页面 3- 带有片段的ViewPage。
我尝试过使用ViewPage,但我遇到了不同的问题,例如如何向后滑动并指示用户选中了哪个选项。 我需要使用最简单的方式向前和向后滑动(指示用户选中了哪个选项)。
我想尽可能地依赖于 Android 方法,而不是像存储已选选项这样的方法,因为我相信这些方法从运行时或代码大小方面来看更加优化。 如果有其他类可用,请指导我使用哪些类或哪个类最适合实现我的目标。
3个回答

1
我会使用 ViewPagerFragmentPagerAdapter。适配器的项目将是相同片段的不同实例。每个片段都包含一个静态问题文本和一个可能答案的单选组。 ViewPager 然后会处理滑动,用另一个这样的片段替换它。

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

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接