我们在《从源码看FragmentManager如何工作》文章中提到过FragmentHostCallback这个类,从字面意思理解,他是对Fragment的持有者,并实现一些回调方法。他继承自FragmentContainer。
public abstract class FragmentHostCallback<E> extends FragmentContainer
/**
* 负责Fragment容器的回调
*/
public abstract class FragmentContainer {
/**
* 根据id找到对象,这个最终会执行到FragmentActivity的内部类HostCallbacks
*/
@Nullable
public abstract View onFindViewById(@IdRes int id);
/**
* 判断Fragment的容器是否持有了任何view视图
*/
public abstract boolean onHasView();
}
回过来继续看FragmentHostCallback。官方的说明如下,它整合了Fragment持有者的操作,Fragment可能被任何对象持有,比如Activity,为了管理这些Fragments,提供该类,重写方法去适配持有者。
Integration points with the Fragment host.
Fragments