使用backstack时,需要将旧片段放在最上面

时间:2017-02-05 15:54:38

标签: android android-fragments

主屏幕有片段A。

单击将片段A替换为片段B.

按后退按钮将片段B替换为A.

然而,在完成完整动画之前,片段B位于片段A的顶部。

我想要他们反过来。

显而易见的代码:

                    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.setCustomAnimations(R.anim.slide_in_down, R.anim.custom_out, R.anim.custom_in, 0);
                    fragmentTransaction.replace(R.id.content, fragment, "contentFragment").addToBackStack(null).commit();

我试图实现的效果:

想象片段A是一扇门。

门打开(片段A退出动画),片段B落入屏幕(片段B进入动画)

按下后退按钮时,片段B保持原样,门(片段A)在其顶部关闭(片段输入动画)

任何人都知道如何以干净的方式执行此操作,而无需在按下后退按钮时添加其他片段A?

1 个答案:

答案 0 :(得分:1)

到目前为止,最好的方法是将2个片段容器一个放在另一个上面。 我将片段A保留在顶部容器中,将片段B保留在另一个容器中 在1个交易中,我会删除/添加2个不同的容器。