View的Temporary Detach状态

本文深入探讨了Android中View的Temporary Detach状态,从切入点出发,通过源码分析,揭示了这一状态在视图缓存机制中的角色。 Temporary Detach与Detach的区别在于,前者是轻量级操作,不会影响到测量、布局和绘制流程,从而在优化性能时起到关键作用。
摘要由CSDN通过智能技术生成

View的Temporary Detach状态

探究TemporaryDetachDetach的关系

切入点

起因是在分析RecyclerView缓存机制时,在类注释描述的Scrap中,提到了处于temporary detached状态的View

直接在View方法表中搜索temporary可发现一系列方法。

源码分析

对于View来说:

通过对比dispatchStartTemporaryDetachdispatchDetachedFromWindow

public void dispatchStartTemporaryDetach() {
    mPrivateFlags3 |= PFLAG3_TEMPORARY_DETACH;
    notifyEnterOrExitForAutoFillIfNeeded(false);
    notifyAppearedOrDisappearedForContentCaptureIfNeeded(false);
    onStartTemporaryDetach();
}

void dispatchDetachedFromWindow() {
    ...
    notifyEnterOrExitForAutoFillIfNeeded(false);
    notifyAppearedOrDisappearedForContentCaptureIfNeeded(false);
}

可以发现前者是后者是轻量级操作,只做了一小部分处理&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值