动画片段时会出现白色屏幕

时间:2016-12-15 13:01:09

标签: android-fragments animation android-transitions

我正在尝试在执行片段事务时放入幻灯片并滑出右侧动画。动画工作正常。但是,我正在制作一个白色屏幕,同时动画片段。我厌倦了谷歌提供的所有可能的解决方案。但是,它们都没有奏效。这就是我目前正在做的事情。

/** enter_from_left.xml **/

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="-100%" android:toXDelta="0%"
        android:duration="500"/>
</set>

/** enter_from_right.xml **/

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="100%" android:toXDelta="0%"
        android:duration="500" />
</set>


/** exit_to_left.xml **/

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="0%" android:toXDelta="-100%"
        android:duration="500"/>
</set>

/** exit_to_right.xml **/

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="0%" android:toXDelta="100%"
        android:duration="500" />

</set>

更换容器中的片段:

 public static void replaceAndAddToBackStack(final FragmentActivity activity, final int containerId,
                                                final Fragment fragment, String tag, int enter, int exit, int popEnter, int popExit) {
        try {
            FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
            transaction.setCustomAnimations(enter, exit, popEnter, popExit);
            transaction.replace(containerId, fragment);
            transaction.addToBackStack(tag);
            transaction.commitAllowingStateLoss();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        }
    }

enter, exit, popEnter, popExit指的是 - &gt; R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right

当我为Chrome自定义标签应用相同的转换时,转换非常顺利。没有白屏。为什么白屏仅出现在片段事务中。

先谢谢

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的问题。尝试将透明背景更改为framelayout。

<FrameLayout
    android:id="@+id/fragmentContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00000000"/>

亲切的问候!