我有一个问题,我正在尝试在ViewAnimator中创建一个孩子,它将从底部滑动。在按下后,它会再次向下滑动。
Animation anim = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
anim.setDuration(350);
anim.setInterpolator(new AccelerateInterpolator());
viewFlipper.setInAnimation(anim);
viewFlipper.setOutAnimation(null);
viewFlipper.setDisplayedChild(2);
onBackPress:
Animation anim = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 1.0f
);
anim.setDuration(350);
anim.setInterpolator(new AccelerateInterpolator());
viewFlipper.setInAnimation(null);
viewFlipper.setOutAnimation(anim);
viewFlipper.setDisplayedChild(0);
但我的问题是,当我第一次点击按钮时,屏幕变黑,儿童滑动。当我点击后退按钮时,一切正常。 (孩子向下滑动,后面是第一个屏幕......
任何帮助?
编辑:
Animation inAnim = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
anim.setDuration(350);
anim.setInterpolator(new AccelerateInterpolator());
Animation outAnim = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
outAnim.setDuration(350);
outAnim.setInterpolator(new AccelerateInterpolator());
viewFlipper.setInAnimation(inAnim);
viewFlipper.setOutAnimation(outAnim);
viewFlipper.setDisplayedChild(2);
答案 0 :(得分:0)
此:
viewFlipper.setOutAnimation(null);
和
viewFlipper.setInAnimation(null);
基本上它告诉框架隐藏第一个视图,然后为第二个视图设置动画。
你有来提供相反方向的动画。 只需使用两个动画即可实现此目的。只需使用幻灯片并向外滑动以显示下一个视图,相反的两个动画相同,但您必须反向它们 - 最好使用一些setRepeatMode(Animation.REVERSE) - 参考{ {3}}或者只是声明其他反转动画。
答案 1 :(得分:0)
Animation inAnim = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
anim.setDuration(350);
anim.setInterpolator(new AccelerateInterpolator());
Animation outAnim = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
outAnim.setDuration(350);
outAnim.setInterpolator(new AccelerateInterpolator());
viewFlipper.setInAnimation(inAnim);
viewFlipper.setOutAnimation(outAnim);
viewFlipper.setDisplayedChild(2);