替换片段会破坏所有隐藏的片段

时间:2016-03-06 21:33:16

标签: android android-fragments

如果我有一个Activity并且我添加了fragment1,请隐藏fragment1,添加fragment2,隐藏fragment2,然后使用

fragmentManager.beginTransaction()
                    .replace(R.id.content, fragment3)
                    .commit();

现在替换fragment3,fragment1和fragment2会发生什么?他们被摧毁了还是某些东西还是他们还在那里? (这都在同一个容器中,R.id.content

2 个答案:

答案 0 :(得分:5)

除非您将事务添加到backstack,否则容器中的所有片段都将被销毁

答案 1 :(得分:0)

如果片段被添加到后台堆栈中,片段对象实例将调用onDestroyView(),重建片段所需的数据仍然是片段后台堆栈的一部分,因此当片段从堆栈中弹出时,先前的片段可以重新构建并再次显示(类似于活动堆栈中可能已被破坏的活动)。如果片段不是后栈的一部分,它就会被简单地销毁,因为用户永远不会再回到它。