我真的把这两种组合混淆了
getActivity().getFragmentManager()
和
fragment.getFragmentManager()
好像我们看到了Activity.java的内部实现
public FragmentManager getFragmentManager() {
return mFragments.getFragmentManager();
}
而Fragment.java有
final public FragmentManager getFragmentManager() {
return mFragmentManager;
}
这是否意味着我们总是有不同的FragmentManager?
答案 0 :(得分:1)
Fragment是应用程序的用户界面或行为的一部分,可以放在Activity中。与片段的交互是通过FragmentManager完成的,可以通过 Activity.getFragmentManager()
和 Fragment.getFragmentManager()
获得。
<强> getActivity().getFragmentManager() 强>
返回FragmentManager以与相关的片段进行交互 通过这项活动。
<强> fragment.getFragmentManager() 强>
返回FragmentManager以与相关的片段进行交互 这个片段的活动。请注意,这将是非null 稍微在getActivity()之前,从片段开始的时间 被放置在FragmentTransaction中,直到它被提交并附加 它的活动。
如果此片段是另一个片段的子片段,则为FragmentManager 这里返回的将是父母的 getChildFragmentManager() 。