2

所以,首先我创建一个像这样的新片段

ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.replace(R.id.main_content_frame, cFr, "CARS");
ft.addToBackStack(null);
ft.commit();

后来我像这样删除它

fm.popBackStack();
ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_NONE);
ft.remove(fm.findFragmentByTag("CARS")).commit();

但是关闭过渡是通过TRANSIT_FRAGMENT_OPEN动画完成的(或者我认为默认情况下相反),并且我清楚地设置了TRANSIT_NONE.

有什么想法吗?

4

2 回答 2

5
  public void mRemoveFragment(android.app.Fragment fragment){
    android.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
    ft.remove(fragment);
    ft.commit();
}

使用此功能删除片段。在 setCustomAnimation 中,你可以给你的脚本。我目前使用的是android提供的默认的

于 2014-03-17T21:12:19.713 回答
3

尝试使用带有 FragmentTransaction 的自定义动画:

fragmentTransaction.setCustomAnimations(R.anim.frag_fade_in, R.anim.frag_fade_out, R.anim.frag_fade_in, R.anim.frag_fade_out);

此处的资源 ::片段交易的自定义动画

于 2014-03-17T21:02:21.447 回答