点击设备后,会调用Fragment的哪个事件?

时间:2015-09-04 20:38:31

标签: android android-fragments fragmentmanager fragment-lifecycle

我在另一个片段A的顶部添加片段B,如下所示:

fragmentManager.beginTransaction().add(R.id.frame_container, fragment).addToBackStack("post_details").commit();

问题是,当我在B上点击设备时,我需要A中的锚点。 在这种情况下将调用哪种生命周期方法?

1 个答案:

答案 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它正被删除。