View的Temporary Detach状态
探究TemporaryDetach
与Detach
的关系
切入点
起因是在分析RecyclerView
缓存机制时,在类注释描述的Scrap
中,提到了处于temporary detached
状态的View
。
直接在View
方法表中搜索temporary
可发现一系列方法。
源码分析
对于View
来说:
通过对比dispatchStartTemporaryDetach
和dispatchDetachedFromWindow
public void dispatchStartTemporaryDetach() {
mPrivateFlags3 |= PFLAG3_TEMPORARY_DETACH;
notifyEnterOrExitForAutoFillIfNeeded(false);
notifyAppearedOrDisappearedForContentCaptureIfNeeded(false);
onStartTemporaryDetach();
}
void dispatchDetachedFromWindow() {
...
notifyEnterOrExitForAutoFillIfNeeded(false);
notifyAppearedOrDisappearedForContentCaptureIfNeeded(false);
}
可以发现前者是后者是轻量级操作,只做了一小部分处理&#