我在另一个片段A的顶部添加片段B,如下所示:
fragmentManager.beginTransaction().add(R.id.frame_container, fragment).addToBackStack("post_details").commit();
问题是,当我在B上点击设备时,我需要A中的锚点。 在这种情况下将调用哪种生命周期方法?
答案 0 :(得分:2)
这取决于您使用的事务类型以及是否将片段添加到后台堆栈。假设您将B添加到Backstack并且您的Activity未经历任何生命周期事件,我们将详细介绍这些场景:
添加A - >添加B + addToBackstack - > popBackStack
在这种情况下,A将不会经历任何生命周期事件。
添加A - >替换为B + addToBackStack - > popBackStack
在这种情况下,A将通过onCreateView-> onActivityCreated等等。
现在在你的另一个问题上,A怎么知道B是否被删除?有很多方法,但一个简单的方法是让B在自己的onPause中检查Fragment.isRemoving。然后,B可以通知托管活动甚至片段A它正被删除。