片段交易动画无法在Android 6.0+中运行

时间:2016-01-19 06:56:04

标签: android android-fragments

我使用setCustomAnimations()方法在Android 6.0.1中完全没有效果。所有发生的事情是片段在动画持续时间停留在屏幕左侧,在屏幕的其余部分留下一个空白区域,然后在没有任何动画的情况下占据屏幕。它适用于所有版本< 6.0。我使用的方法如下:

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations
            (R.anim.slide_in_left, R.anim.slide_out_left, 0, 0);
MyFragment myFragment = new MyFragment();
fragmentTransaction.replace(R.id.fragmentContainer, myFragment,
            ResourceUtil.resByName(context, R.string.myFragmentText));
fragmentTransaction.commit();

此外,slide_in_left XML文件如下:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="-100%" android:toXDelta="0%"
    android:fromYDelta="0%" android:toYDelta="0%"
    android:duration="300"/>
</set>

1 个答案:

答案 0 :(得分:0)

使用此:

 fragmentTransaction.setCustomAnimations(R.anim.anim_appear, R.anim.s_down);

更多here

仍然无法使用?检查你的xml。 -100%可能会导致问题。

所以将动画更改为:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="0%" android:toXDelta="100%"
    android:fromYDelta="0%" android:toYDelta="0%"
    android:duration="300"/>
</set>