0

我正在寻找有关创建 ViewFlipper 的帮助,当通过滑动在月份之间切换时,它将像在 android 日历中一样工作。

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

mViewFlipper.setDisplayedChild( 1 );

当我向左滑动时:

mViewFlipper.setDisplayedChild( 0 );

当我向左滑动两次时,我希望每次都获得完整的进/出动画,并且向右滑动也是如此。只有当我滑动到下一个和上一个时,完整的动画才有效,从不指向下一个 -> 下一个。

感谢帮助!

4

3 回答 3

1

如果您只使用 2 views,并且目前您正在手动设置 0 和 1 ,只需调用

mViewFlipper.showNext();

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

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

我可能完全误解了您的问题,但是,它相当模糊。

于 2013-08-30T13:33:41.307 回答
1

看到这个链接它可能会有所帮助......

http://www.1mobile.com/effective-navigation-863044.html

http://developer.android.com/training/implementing-navigation/index.html

于 2013-08-30T13:36:54.973 回答
0

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

翻译动画 xml 文件 = res 文件夹中 animator 文件夹中的 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;
}
于 2013-11-09T17:30:42.197 回答