美文网首页
RecelyView 详解(二)

RecelyView 详解(二)

作者: misLiu | 来源:发表于2020-11-17 20:56 被阅读0次

    RecelyView 详解(一) - 简书

    下面我准备看一下Recycler的机制 

    Recycler

    在RecelyViw 里面可以看到实例话 recelyview创建了Recycler现在知道了 Recycler的初始值,在介绍一下Recycler的核心的几个列表后续的操作都是围绕着 这几个列表进行处理。

    RecyclerList

    上面可以看到Recycler持有了几个集合,咱们先从RecycledViewPool入手

    RecycledViewPool

    图上可以看出RecycledViewPool的设置有两种一种是调用getRecycledViewPool 一种是咱们自主设置的RecycledbviewPool 进行了重置连接数操作 从RecycledViewPool了解到 主要是对mScrapHeap进行管理 咱们围绕着mScrapHeap 看一下。

    mScrapHeap

    图上显示一共有两个集合一个是mScrapHeap废弃的viewHoder一个是对ScrapData对象管理的集合,还是从添加数据开始

    putRecycledView

    图上看到对废弃的ViewHoder添加viewhoder 根据每个getItemViewType进行判断当前类型的缓存是否已经达到上限,如果没有则添加

    addViewHolderToRecycledViewPool addViewHolderToRecycledViewPool

    最后发现offsetPositionsForRemovingInvisible会调用可以看一下上一篇文章看一下这个回调,当删除,更新缓存大小,清除缓存的view调用废弃的缓存,只要有缓存操作或者有移除动作会添加,现在知道的数据来源接下来看一下删除

    clear

    清除就很好理解了直接遍历了缓存的type集合然后清楚每个type下存储的viewhoder。调用也比较简单setAdapter ()

    RecycledViewPool  总结

    如果没有设置RecycledviewPool将会在调用getRecycledViewPool时进行创建,当更新缓存长度,删除item缓存,对缓存进行操作RecycledViewPool会里面的mScrap会根据type添加缓存ViewHodler的列表,当调用onBindeView调用factorInBindTime获取缓存的

    相关文章

      网友评论

          本文标题:RecelyView 详解(二)

          本文链接:https://www.haomeiwen.com/subject/rhdstktx.html