我想在将片段附加到包含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();
在这种情况下,只显示新片段的in动画,旧片段在新连接的片段下保持可见。连同弹出后筹码组时不会播放动画。
将transaction.add(..)
替换为transaction.replace(..)
有助于删除底层片段,但仍然存在未显示其动画外观的问题。在这种情况下,底层片段就会消失。至少pop动画显示在.replace案例中。
有关示例项目,请参阅:github(动画分支)
答案 0 :(得分:0)
您应该在片段事务上使用remove()
或replace()
来删除其他片段。