2

我正在使用 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();

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

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

尽管用于动画到弹出片段之一的动画没有反转,但这一切都很好。我也尝试过transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)事先使用,但这甚至没有显示常规交易发生时的转换,也没有显示反向。

我究竟做错了什么?

4

1 回答 1

10

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

public abstract FragmentTransaction setCustomAnimations
                (int enter, int exit, int popEnter, int popExit)

“为该事务中进入和退出的片段设置特定的动画资源。popEnter和popExit动画将在弹出回栈时播放进入/退出操作。”

来源

于 2012-09-25T13:22:34.297 回答