当手动弹出FragmentManager的后台堆栈时,如何实现反向转换?

Tho*_*ler 2 android transitions android-fragments

我正在使用v4兼容性库并切换到这样的新片段:

 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 transaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
 transaction.replace(R.id.contentFragmentContainer, event.getFragmentClass().newInstance(), FRAGMENT_CONTENT);
 transaction.addToBackStack(fragmentTransactionName);
 transaction.commit();
Run Code Online (Sandbox Code Playgroud)

现在,当我想以编程方式返回到先前的片段而不用新片段事务污染用户的后台堆栈时,我使用popBackStackImmediate():

 if (fragmentManager.popBackStackImmediate(fragmentTransactionName, 0)) {
     return;
 }
 // apparently popping back to that fragment was not successful,
 // make a regular transaction now
Run Code Online (Sandbox Code Playgroud)

尽管已经用于动画到其中一个弹出片段的动画不会被反转,但这样可以正常工作.我也尝试过transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)预先使用,但是当常规交易发生时,这甚至都没有显示出转变,也没有反过来显示.

我究竟做错了什么?

Tho*_*ler 10

我会说我必须更好地阅读The Fine Manual(TM):

public abstract FragmentTransaction setCustomAnimations
                (int enter, int exit, int popEnter, int popExit)
Run Code Online (Sandbox Code Playgroud)

"设置特定的动画资源,以便为在此事务中进入和退出的片段运行.当弹出后栈时,popEnter和popExit动画将被用于进入/退出操作."

(来源)