更改已在堆栈中的片段动画

gra*_*ton 12 java animation android android-fragments

假设我运行以下代码将片段放入堆栈.它设置了我最初查看片段时以及何时退出片段的动画.

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_left,
                                        R.anim.no_anim,
                                        R.anim.no_anim_show,
                                        R.anim.slide_right_away);
fragmentTransaction.replace(R.id.container, fragment, tag);
fragmentTransaction.addToBackStack(tag);
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)

如果我想稍后更改退出动画,我该怎么办呢?如同,如果我有以下代码:

getFragmentManager().popBackStack();
Run Code Online (Sandbox Code Playgroud)

但我想要一个不同的动画,然后是我最初放入堆栈的动画.

Lib*_*bin 1

您可以在从后退堆栈弹出之前更改自定义动画

getFragmentManager().beginTransaction().setCustomAnimations(R.anim.slide_left,
            R.anim.no_anim,
            R.anim.no_anim_show,
            R.anim.new_pop_exit).commit();
Run Code Online (Sandbox Code Playgroud)

并在弹出堆栈之前执行挂起的事务

getFragmentManager().executePendingTransactions();
getFragmentManager().popBackStackImmediate();
Run Code Online (Sandbox Code Playgroud)

注意:popExit 动画将在退出操作时播放,特别是在弹出返回堆栈时