我想在将片段附加到包含 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(动画分支)