android – 片段事务动画叠加

我试图在替换片段时使用动画(使用片段事务的replace()).我用setCustomAnimations()设置了animtaions.

我的动画试图将旧片段与从右移动的新片段重叠.但问题是:我可以看到旧片段的视图,即使它已经被新片段重叠了.只有动画完成后,旧视图才会消失.此外,当一个新片段是一个复杂的片段(列表视图等)时,我可以看到一些人工制品和重叠时的闪烁.

这太可怕了,我怎么能避免呢?

我输入动画的代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:ordering="together">


  <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:propertyName="x" 
    android:valueType="floatType"
    android:valueTo="0" 
    android:valueFrom="720"
    android:duration="250"
    android:zAdjustment="top"/>  

</set>

更新:关于人工制品 – 不是他们.这只是糟糕叠加的后果.我慢慢看动画.
所以问题是:旧片段保持在TOP.它在动画时完全重叠了新的.

最佳答案 你的问题发生是因为你在进入和退出动画中使用相同的动画文件,你必须为旧片段设置退出动画,不同于输入一个,就像到另一边

transaction.setCustomAnimations(< enterAnimationResId>,< exitAnimationResId>);

其中enterAnimationResId是包含要在输入片段时应用的动画的xml文件,exitAnimationResId是包含要在关闭现有片段时应用的动画的xml文件.

点赞