replace()
会用新的片段替换现有的片段。我们可以使用addToBackStack(null)
将该片段放入返回堆栈中,以便可以返回到先前显示的片段。现在当添加(或替换)片段时,片段的onAttach()
、onCreate()
等方法按顺序调用。
现在,当我们从活动中调用remove()
来删除片段时,哪些片段函数被调用以及它们的顺序是什么?
attach()
和detach()
是什么? detach()
是否会删除片段?当使用这两个attach()
和detach()
时,片段的哪些函数被调用以及顺序是什么?
此外,popBackStack()
会发生什么?也就是说,当我们在活动中针对片段使用popBackStack()
时,会调用哪些函数?
并且,onDestroy()
会在什么时候被调用?
谢谢。
detach()
会使片段仍然附加到活动上,因此不会调用onDetach()
,但是它会分离其视图层次结构,依次调用onPause()
、onStop()
和onDestroyView()
。 调用attach()
要求该片段处于分离的视图状态,并将其恢复到正常状态,依次调用:onCreateView()
、onActivityCreated()
、onStart()
和onResume()
。 - BladeCoder