2012-11-15 68 views
3

我需要在问题列表和他们在收音机组中的相应选择之间水平滑动。我已阅读,我有不同的选择,例如: 1-姿势检测器 2-的ViewPage 3-与片段的ViewPage水平滑动

我曾尝试的ViewPage但我关于如何向后滑动面对不同的问题,并指出选择有已被用户检查过。 我需要使用最简单的方式向前和向后滑动(指示已选中哪个选项)

我想尽可能地依赖Andriod方法,而不用像我自己那样存储选中的选项,因为我相信它从运行时或代码大小更优化了这种方法。 请如果有其他课程,我可以使用,引导我,或者哪些是真正最好的执行我的目标

回答

1

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

0

可以easilly使用姿态探测器创建扩展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); 
      } 
     }); 

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