我使用以下代码将一个Fragment推到Fragment堆栈中:
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right,
R.anim.slide_in_left, R.anim.slide_out_left);
fragmentTransaction.replace(getId(), newFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
这种方法在片段堆栈弹出时会播放片段弹出动画,例如通过按下返回按钮。然而,有些情况下我想要在不显示此动画的情况下弹出片段回退堆栈,例如因为我刚从另一个活动中返回并且想立即显示以前的片段,而不需要动画效果。示例导航可能如下所示:
- 用户位于具有根片段的开始屏幕上 - 他选择了根片段上的一个项目,该项目显示一个新片段来显示该项目的详细信息。它使用片段事务进行操作,为推送和弹出情况设置动画(因此当用户按返回按钮时,转换是动画的)。 - 从此片段开始一个活动,该活动(出于某种原因)删除了刚刚显示的项目。 - 当此活动完成时,我希望返回到根片段,而不显示“详细片段”的“弹出动画”。
有没有一种方法可以在不播放指定的弹出动画的情况下弹出片段回退堆栈?