我真的很困惑这两种组合

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/

10-09 21:04