-2

我在另一个片段A的顶部上添加B片段如下:当我点击设备时,将会调用什么事件的片段?

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

的问题是,当我点击设备回B,我需要A. 锚哪个生命周期方法会在这种情况下调用?

+1

谷歌搜索在这里指出了对类似问题的回答。不,我不会提供链接作为SO ** IS NOT **人类搜索引擎。 – Selvin

回答

2

这取决于您使用的事务类型以及是否将片段添加到后退堆栈。让我们通过假设你B添加到堆栈中,你的活动不经过任何生命周期事件去的情景:

  • 添加 - >添加B + addToBackstack - > popBackStack

    在这种情况下, A将不会经历生命周期事件。

  • 添加 - >为B +替换addToBackStack - > popBackStack

    在这种情况下,A将通过onCreateView-> onActivityCreated等。

现在在你的另一个问题上,A怎么知道B是否被删除?有很多方法,但是一个简单的方法是让B在自己的onPause中检查Fragment.isRemoving。然后,B可以通知主机活动,甚至通知片段A它被移除。

+0

感谢WindsurferOak – pagalpanda

相关问题