用于remove()的FragmentTransaction setTransition()不会更改先前在replace()中设置的转换

fca*_*ova 2 android transition android-fragments fragmenttransaction

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

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

后来我把它删除了

fm.popBackStack();
ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_NONE);
ft.remove(fm.findFragmentByTag("CARS")).commit();
Run Code Online (Sandbox Code Playgroud)

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

有什么想法吗?

gee*_*aul 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();
}
Run Code Online (Sandbox Code Playgroud)

使用此函数删除片段.在setCustomAnimation中,您可以提供脚本.我目前使用的是android提供的默认值