以与片段事务相同的方式将视图滑入和滑出

时间:2018-09-03 14:05:53

标签: android android-animation

在Android上,有一个不错的内置动画,用于片段,您只需一行代码即可轻松实现:

transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

我想获得相同的结果,但是在View上,每次刷新并更改其内容时都要对其进行动画处理。我尝试过

view.startAnimation(AnimationUtils.loadAnimation(ctx, android.R.anim.slide_out_right));      
view.startAnimation(AnimationUtils.loadAnimation(ctx, android.R.anim.slide_in_left));

但是只有一个动画在视图上播放,一个幻灯片滑出而另一个动画(在这种情况下,是相同的)滑入时,则无法达到相同的效果,您可以清楚地看到一半的屏幕变成白色我的代码,而Fragment Transaction的动画显示了两个片段进出的情况。有什么办法可以同时播放这两个动画?

1 个答案:

答案 0 :(得分:0)

您应该能够使用AnimationSet实现这一目标。

在您的情况下,代码应类似于:

    Animation anim1 = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
    Animation anim2 = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);

    AnimationSet animationSet = new AnimationSet(false);
    animationSet.addAnimation(anim1);
    animationSet.addAnimation(anim2);
    animationSet.setDuration(1000); // 1s
    animationSet.setInterpolator(new LinearInterpolator());
    view.startAnimation(animationSet);