绘制原理简述
1.1 假设
1.2 绘制过程
1.2.1 缓存机制图解
1.2.2 从Recycler中获取一个ViewHolder的逻辑
实例讲解
情形一 : 由无到有
情形二 : 在原有数据的情况下进行整体刷新
情形三 : 滚动复用
RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView。缓存的是什么?cachedView会
执行onBindView吗?预取机制是?
如何实现RecyclerView的局部更新,用过payload吗,notifyItemChange方法中的参数?
RecyclerView嵌套RecyclerView滑动冲突,NestScrollView嵌套RecyclerView
RecyclerView的性能优化
开源库
问题:
1. mCachedViews和预取机制的问题?
2. 四级缓存大小是5个,这5个代表什么?
3. 情形二 : 在原有数据的情况下进行整体刷新,是在一级还是四级缓存中?
1. RecyclerView 的缓存机制,滑动10个,再滑回去,会有几个执行 onBindView 。缓存的是什
么? cachedView 会执行onBindView吗?
2. RecyclerView 预取机制
3. 如何实现 RecyclerView 的局部更新,用过 payload 吗,notifyItemChange方法中的参数?
4. RecyclerView 嵌套 RecyclerView 滑动冲突,NestScrollView嵌套RecyclerView。
5. RecyclerView 性能优化
绘制原理简述
1.1 假设
为了简化问题,绘制原理介绍提供以下假设:
RecyclerView
以LinearLayoutManager为例
忽略ItemDecoration
忽略ItemAnimator
忽略Measure过程
假设RecyclerView的width和height是确定的
Recycler
忽略mViewCacheExtension
1.2 绘制过程
adapter.notifyxx() -> AdapterDataObservable -> RecyclerViewDataObserver(观察者模式)
(1)类的职责介绍