我真的很困惑这两种组合
getActivity().getFragmentManager()
和
fragment.getFragmentManager()
就像我们看到Activity.java具有的内部实现
public FragmentManager getFragmentManager() {
return mFragments.getFragmentManager();
}
而Fragment.java有
final public FragmentManager getFragmentManager() {
return mFragmentManager;
}
这是否意味着我们始终具有不同的FragmentManager?
最佳答案
片段是可以放置在活动中的应用程序用户界面或行为的一部分。与片段的交互是通过FragmentManager完成的,可以通过Activity.getFragmentManager()
和Fragment.getFragmentManager()
获得。
getActivity().getFragmentManager()
返回用于与关联片段进行交互的FragmentManager
这项活动。
fragment.getFragmentManager()
返回用于与关联片段进行交互的FragmentManager
这个片段的活动。请注意,这将是非null
在片段发生的时间内,在getActivity()之前
放置在FragmentTransaction中,直到提交并附加
活动。
如果此Fragment是另一个Fragment的子代,则FragmentManager
这里返回的将是父母的getChildFragmentManager()。
关于android - getActivity()。getFragmentManager()v/sfragment.getFragmentManager(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46089079/