![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RecyclerView
ZHxin
coder
展开
-
RecyclerView局部刷新和原理介绍
RecyclerView局部刷新和原理介绍一、引言二、局部刷新的正确使用姿势三、局部刷新的原理3.1 RecyclerView与Adapter建立观察者模式3.2 onItemRangeChanged()3.3 dispatchLayoutStep1()3.3.1 processAdapterUpdatesAndSetAnimationFlags()3.3.2 记录Views信息3.3.3 运行p...原创 2019-03-08 14:18:02 · 7042 阅读 · 5 评论 -
使用AsyncLayoutInflater预加载,加快列表渲染
引子列表卡顿是一个很常见的问题,通常的理解是滑动过程中卡顿,有很多常规的处理方法,从最简单的复用到降低布局复杂度到图片加载。本文介绍下列表初次填充数据时卡顿的处理方法。AsyncLayoutInflater在查找页面fps过低的问题中,我发现在列表首次填充数据进行显示时,由于列表中将要显示在屏幕中的ViewHolder都要被创建,进而这些ViewHolder的View都要被Inflate出来...原创 2019-05-13 11:31:39 · 4376 阅读 · 4 评论 -
RecyclerView.RecycledViewPool+BaseQuickAdapter+FooterLayout造成IllegalStateException
一、RecyclerView有一个优化设置,如果多个RecyclerView拥有相同的item布局,可以通过使用一个RecycledViewPool来减少缓存的View数目。 public void setRecycledViewPool(@Nullable RecycledViewPool pool) { mRecycler.setRecycledViewPool(poo...原创 2019-09-05 22:20:11 · 956 阅读 · 0 评论 -
RecyclerView优化总结
一、铺垫1.RecycleBin先介绍一个简单的复用池实现,它通过SparseArray类型的缓存变量实现,注意它并不是线程安全的,只能在UI线程中使用。public class RecycleBin<T> { private final SparseArray<Queue<T>> map; public RecycleBin() { ...原创 2019-09-26 17:58:30 · 1411 阅读 · 3 评论