0

我想在将片段附加到包含 FragmentPager 的活动时播放自定义动画。不幸的是,正常的使用FragmentTransaction.setCustomAnimations(int, int)方式只能部分起作用。无论我做什么,都会显示过渡动画或过渡动画。

这是我到目前为止所拥有的:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.setCustomAnimations(R.anim.fadein, R.anim.fadeout, R.anim.fadein, R.anim.fadeout);
    transaction.add(R.id.fragmentSpace, hostingFragment, CURRENT_FRAGMENT);
    transaction.addToBackStack(null);
    transaction.commit();

在这种情况下,只显示新片段的动画,旧片段在新附加的片段下保持可见。与此同时,弹出返回堆栈时不会播放任何动画。

将 替换为transaction.add(..)有助于transaction.replace(..)删除底层 Fragment,但仍然存在未显示其 out 动画的问题。在这种情况下,底层的 Fragment 就消失了。至少弹出动画显示在 .replace 案例中。

有关示例项目,请参见:github(动画分支)

4

1 回答 1

0

您应该在片段事务上使用remove()orreplace()来摆脱其他片段。

于 2013-06-19T23:30:01.933 回答