Skip to content
阅读进度

为什么在 Fragment 中使用 getChildFragmentManager() 而不是 getFragmentManager()? ​

返回 Android 核心 目录

标准回答 ​

选哪个 FragmentManager,取决于你要管理的是“我的孩子”,还是“和我同一层的页面”。

  • childFragmentManager 管理当前 Fragment 内部的子 Fragment。
  • parentFragmentManager 管理包含当前 Fragment 的那一层。
  • 选择依据是 UI 层级和返回栈归属。

通俗例子 ​

一个首页 Fragment 里面又放了几个标签页,里面的子 Fragment 用 childFragmentManager;切换首页本身则由包含首页的那一层管理。

易混淆点 ​

不是所有地方都必须换成 childFragmentManager;旧 getFragmentManager 的替代要看实际层级。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。