Android ViewFlipper有2个视图

时间:2013-08-30 13:09:35

标签: android events view switch-statement swipe

我正在寻找帮助创建ViewFlipper,它可以像在android日历中一样,在滑动几个月之间切换。

我想在viewFlipper中只有两个视图,当我向右滑动时我想做

mViewFlipper.setDisplayedChild( 1 );

当我向左滑动时:

mViewFlipper.setDisplayedChild( 0 );

当我向左滑动两次时,我希望每次都能获得完全进/出动画,并且对于正确的滑动也是如此。完全动画只有在我滑动到下一个和上一个,从不在下一个方向时才有效 - >下。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

如果您仅使用2个视图,并且目前您手动设置0和1,请致电

mViewFlipper.showNext();

而不管滑动方向如何并根据您是想要向左还是向右滑动来应用正确的动画。这意味着即使您在视图1上并且再次向右滑动(如您定义的那样),视图0也会重新进入,就像两个视图之间的永无止境的鳍状肢一样。

http://developer.android.com/reference/android/view/animation/AnimationUtils.html

我可能完全误解了你的问题,但这很模糊。

答案 1 :(得分:1)

答案 2 :(得分:0)

** res = animator中的**文件夹.......

在res文件夹中的animator文件夹中翻译动画xml文件= s_in_fleft ..... 可能有帮助**

public boolean onTouchEvent(MotionEvent touchevent) {
    switch (touchevent.getAction()) {
    case MotionEvent.ACTION_DOWN: {
        lastX = touchevent.getX();
        break;
    }
    case MotionEvent.ACTION_UP: {
        float currentX = touchevent.getX();

        if (lastX < currentX) {
            if (viewFlipper.getDisplayedChild() == 0)
                break;

            viewFlipper.setInAnimation(this, R.animator.s_in_fleft);
            viewFlipper.setOutAnimation(this, R.animator.s_out_right);
            viewFlipper.showNext();
        }

        if (lastX > currentX) {
            if (viewFlipper.getDisplayedChild() == 1)
                break;

            viewFlipper.setInAnimation(this, R.animator.s_in_fright);
            viewFlipper.setOutAnimation(this, R.animator.s_out_left);
            viewFlipper.showPrevious();
        }
        break;
    }
    }
    return false;
}