流程

RecycleView和ListView的缓存机制

2021-06-23  本文已影响0人  Owen270

1.ListView二级缓存(AbsListView.RecycleBin)

1.1.mActivieViews 【View[]】 缓存屏幕内的itemView
createView x
bindView x
1.2.mScrapViews 【View[]】 缓存离开屏幕的itemView
createView x
bindView √
1.3.缓存读取机制如下图:

image.png

2.RecycleView 四级缓存

2.1.mAttachedScrap 【ArrayList<View>】 缓存屏幕内的ViewHolder
createView x
bindView x

2.2.mCacheViews 【ArrayList<View>】 缓存屏幕外的ViewHolder,默认上限2个
createView x
bindView x

2.3.ViewCacheExtension 不直接使用,一般需要用户自定义

2.4.RecycleViewPool 默认上线为5个,技术上可以实现多个
RecycleView复用同一个Pool.
createView x
bindView √

2.5.缓存读取机制如下图


image.png

3.Recycleview缓存机制的优势
3.1.mCahceView的使用,可以做到屏幕外的itemView进入屏幕时,不需要bindView就可以快速复用。
3.2.在特定的场景下,比如ViewPager+多个列表页,可以对RecycleViewPool进行复用

4.ListView和RecycleView的区别
ListView 与 RecyclerView区别总结 (juejin.cn)

上一篇 下一篇

猜你喜欢

热点阅读