在FragmentManager上调用popBackStack时的customAnimation

在我的活动中,只需按一下按钮,我就会使用自定义animation将新片段替换为当前片段,就像在此示例中一样。

@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) { case R.id.action_anomalie: Fragment contentFragment = getFragmentManager().findFragmentById(R.id.content); if(contentFragment instanceof AnomalieListFragment) { getFragmentManager().popBackStack(); return true; } else { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); anomalieFragment = new AnomalieListFragment(); ft.replace(R.id.content, anomalieFragment); ft.addToBackStack(null); ft.commit(); } ... 

但是, 弹回堆栈不会显示任何animation。 有没有办法像使用setCustomAnimations方法一样在FragmentTransaction中指定自定义animation?

  • Android - 在运行时更改片段布局
  • 无法实例化片段
  • Android 2.2.1,2.3,2.0中的碎片。 这可能吗?
  • IllegalArgumentException:当快速切换ActionBar选项卡时,没有findid为fragment的视图
  • OnLoadFinished()调用两次
  • 滑块菜单片段中的Swapable选项卡
  • 为什么Kit Kat需要使用isValidFragment?
  • Android上的Dagger 2:在Activity中注入相同的依赖项并保留Fragment
  • 在进一步阅读文档后,我发现使用setCustomAnimation 这个签名允许在按下后退按钮或调用getFragmentManager().popBackStack();时播放animationgetFragmentManager().popBackStack();

    我像这样修改了我的代码

     ... FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out, android.R.animator.fade_in, android.R.animator.fade_out); anomalieFragment = new AnomalieListFragment(); ft.replace(R.id.content, anomalieFragment); ft.addToBackStack(null); ft.commit(); ...