getActivity()。getFragmentManager()v / s fragment.getFragmentManager()

时间:2017-09-07 06:15:32

标签: android

我真的把这两种组合混淆了

getActivity().getFragmentManager()

fragment.getFragmentManager()

好像我们看到了Activity.java的内部实现

public FragmentManager getFragmentManager() {
        return mFragments.getFragmentManager();
    }

而Fragment.java有

 final public FragmentManager getFragmentManager() {
        return mFragmentManager;
    }

这是否意味着我们总是有不同的FragmentManager?

1 个答案:

答案 0 :(得分:1)

Fragment是应用程序的用户界面或行为的一部分,可以放在Activity中。与片段的交互是通过FragmentManager完成的,可以通过 Activity.getFragmentManager() Fragment.getFragmentManager() 获得。

<强> getActivity().getFragmentManager()

  

返回FragmentManager以与相关的片段进行交互   通过这项活动。

<强> fragment.getFragmentManager()

  

返回FragmentManager以与相关的片段进行交互   这个片段的活动。请注意,这将是非null   稍微在getActivity()之前,从片段开始的时间   被放置在FragmentTransaction中,直到它被提交并附加   它的活动。

     

如果此片段是另一个片段的子片段,则为FragmentManager   这里返回的将是父母的 getChildFragmentManager()