getSupportFragmentManager
getSupportFragmentManager()主要用于支持 3.0以下android系统API版本,3.0以上系统可以直接调用getFragmentManager() ,因为fragment是3.0以后才出现的组件,
为了这之前的系统版本也能使用fragment,借助V4包里面的getSupportFragmentManager()方法来间接获取FragmentManager()对象,3.0版本之后,有了Fragment的api,就可以直接使getFragmentManager()这个方法来获取对象。
FragmentManager
FragmentManager顾名思义是用来管理fragment的.
getSupportFragmentManager()就是获取所在fragment 的父容器的管理器,
getFragmentManager()同理。
getChildFragmentManager()所得到的是在fragment 里面子容器的管理器。
FragmentManager宿主环境指的是其管理类,通常在Activity中通过接口getSupportFragmentManager或者getFragmentManager获得FragmentManager对象, 可以认为Activity是FragmentManager的宿主环境类.
FragmentManager宿主环境类状态变化时(如onStart, onResume, onStop等回调),FragmentManager的状态也随之更新(FragmentManager类有一个成员变量mCurState来记录当前状态),同时会同步其管理的所有Fragment的状态.
从用户的角度来看, FragmentManager的宿主环境类管理了一系列Fragment,并且Fragment随着FragmentMannager的宿主环境类的状态变化而变化.
image.png
网友评论