我试图在替换片段时使用动画(使用片段事务的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文件.