理解 FragmentManager

以下内容来自对官方文档的阅读理解

获取 FragmentManager

只要是继承 FragmentActivity 或者 FragmentActivity 本身,都可通过 getSupportFragmentManager() 方法获取到 FragmentManager(后面简称 FM)。

若是 Fragment 嵌套 Fragment 的情况,父 Fragment 可通过 getChildFragmentManager() 方法获取 FM 来管理子 Fragment,同样,子 Fragment 也可通过 getParentFragmentManager() 来获取 FM。


FragmentManager 如何获取.png

使用 FragmentManager

FM 通过 back stack 来管理 Fragment,这点和 Activity 很像。根据用户的操作会对 back stack 进行出入栈操作。一系列的操作都会通过 FragmentTransaction 作为一个基本单元进行提交生效。对 FragmentTransaction 的理解可以看 理解 FragmentTransaction

当用户点击返回键或者调用 FragmentManager.popBackStack() 时,位于栈顶的 transaction 会被出栈。如果此时栈空了,那么其宿主也会出栈回退。调用 addToBackStack() 方法可以将 transaction 添加到 FragmentManager 管理的栈中。默认情况下 transaction 是不会添加到 back stack 里的,这点要注意,最好要么都通过栈维护,要么都不维护。

你可能感兴趣的:(理解 FragmentManager)