片段A->片段B(替换事务已添加到后堆栈)
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.container, fragementB).addToBackStack("tag").commit();
片段B->片段C(替换事务未添加到后堆栈)
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.container, fragementC).commit();
在事务Fragment B中-> Fragment C是否会被销毁,因为Backstack一直在引用先前事务中的引用?
AFAIK,在没有addToBackStack的正常替换事务中,当前片段已被破坏,但此处的backstack保留了先前事务中对该片段的引用
答案 0 :(得分:0)
我认为是。当您使用replace方法时,当前片段实例将被销毁。当调用相同的片段时,您可以看到onCreateView()和onViewCreated()再次被调用。
您可以使用.add()方法代替replace()方法。这样,直到您说出“替换”或“弹出”为止,片段的当前片段将被添加到堆栈中并且不会被破坏。