我需要在广播组中的问题列表和各自的选择之间水平滑动。我读过我有不同的选择,例如: 1-手势探测器 2- ViewPage 3-带有片段的ViewPage
我已经尝试过ViewPage但是我面临着如何向后滑动并指示用户已选中哪个选项的不同问题。 我需要使用最简单的方法向前和向后滑动(指示已选中的选项)
我希望尽可能依赖Andriod方法,而不是自己存储选中的选项,因为我相信它是运行时或代码大小更优化的这种方法。 如果还有其他可以使用的课程,请指导我,或者哪些课程最适合我的目标
答案 0 :(得分:1)
我会将ViewPager
与FragmentPagerAdapter
一起使用。适配器的项目将是同一片段的不同实例。每个片段都包含一个静态问题文本和一个可能的问题答案的无线电组。
ViewPager
然后将用另一个这样的片段替换一个这样的片段。
答案 1 :(得分:0)
答案 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;
}
}
您只需要根据需要定义变量,就像
一样创建一个gestureDetectorgestureDetector = new GestureDetector(new ExampleGestureDetector());
并为您想要的视图重新定义触控侦听器
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View wv, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
});
编辑:测试后,它似乎只适用于可滚动项目。