ViewPager如何通过垂直滚动切换片段?

时间:2013-07-27 20:45:35

标签: java android android-viewpager android-ui

我正在开发我的第一个真正的Android应用程序。  因此,我有足够的信息显示在一个活动中。所以我想有4个屏幕,可以有垂直滚动切换到另一个屏幕(就像ViewPager水平地做)。

我还没有办法让ViewPager垂直滚动。

我抬头看网,然后在这里。但我没有找到任何直接回答的帖子。

我甚至尝试切换到横向并使所有元素旋转90度,但这真的不是一个好方法... 所以请帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用滑动进行制作,并在每次滑动更改数组中的活动时,这是我想到的一个小例子。

private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;


 int[] values = new int[] {
    R.layout.Layout1,
    R.layout.Layout2,
    R.layout.Layout3 };

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    float velocityY) {

try {
    if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
        return false;
    }

    /**
     * left to right swipe
     */
    if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {

         //next Layout
            setContentView(array[]+1)


        /**
         * right to left
         */
    } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {


            //prev layout
            setContentView(array[]-1)

        }

    }
} catch (Exception e) {

}
return false;
}

希望你会发现这很有用, 干杯