2015-12-21 84 views
4

我正在尝试使用动画,同时替换fragments(使用replace()fragment transaction)。我设置了setCustomAnimations()。 我的animation正尝试将旧的fragment与从右侧移动的新旧重叠。但问题是:即使已经与新版本重叠,我仍可以从旧版本fragment中看到意见。只有当动画完成时,旧的views消失。此外,当一个新的fragment是一个复杂的(listviews等),我可以看到一些文物和重叠闪烁。 这太可怕了,我该如何避免这种情况?片段交易动画覆盖

我的代码输入animation

<?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> 

UPDATE:关于文物 - 这不是他们。这只是糟糕覆盖的后果。我慢慢看动画。 所以问题是:旧片段停留在TOP。它在动画时完全重叠新的一个。

+0

可能的重复[丑陋的片段过渡到覆盖层surfaceview](http://stackoverflow.com/questions/14925060/ugly-fragment-transition-to-surfaceview-with-overlay) –

+1

我没有SurfaceView ,在所有片段上重叠也是不好的,不仅困难的(与列表视图) –

回答

0

如果您没有在您的新片段上设置背景,可能导致您正在讨论的奇怪外观。如果是这种情况,只需在与第一个片段重叠的新片段上设置背景色。

android:background="@drawable/background" 
+0

不,这不是,我已经试过了。 –

1

你的问题发生,因为你是在进入和退出动画使用相同的动画文件,你必须设置为不同旧片段退出动画进入一个像另一侧

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

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