如果我有一個活動,我加入片段1,隱藏片段1,加fragment2,隱藏fragment2,然後用是否更換片段銷燬所有隱藏片段
fragmentManager.beginTransaction()
.replace(R.id.content, fragment3)
.commit();
到現在fragment3更換,會發生什麼片段1和fragment2?他們被毀壞或者他們還在嗎? (這全部在同一個容器內,R.id.content
)
如果我有一個活動,我加入片段1,隱藏片段1,加fragment2,隱藏fragment2,然後用是否更換片段銷燬所有隱藏片段
fragmentManager.beginTransaction()
.replace(R.id.content, fragment3)
.commit();
到現在fragment3更換,會發生什麼片段1和fragment2?他們被毀壞或者他們還在嗎? (這全部在同一個容器內,R.id.content
)
除非您將事務添加到堆棧,否則容器中的所有碎片都將被破壞
如果片段被添加到後端堆棧,片段對象實例將調用onDestroyView(),並且重建片段所需的數據仍然是片段的一部分以便當碎片從堆棧中彈出時,先前的碎片可以重新組合並再次顯示(類似於可能已經在活動堆棧中銷燬的活動)。如果這個片段不是後退堆棧的一部分,它就會被破壞,因爲用戶永遠無法回到它。