1.对数据进行优化
- 对请求回来的分页数据进行缓存,可以有效的避免二次加载,并且提升加载速度
2.刷新数据
- 对于增加/删除的数据通过DiffUtil来进行局部刷新数据,而不是一味的全局刷新
3.异步处理数据
- 对请求回来数据处理最好放在异步处理,避免Adapter的notifyDataSetChanged后再做耗时操作
4.减少绘制
- 减少adapter中xml的布局层级,有必要的话可以用自定义view减少层级,recyclerView中不推荐使用ConstraintLayout
5.减少xml的inflate时间
- 尽量用new View()等硬编码去替代xml,xml文件inflate出来的itemView是通过耗时的IO操作,xml不仅包括layout,还包括 drawabble
6.其他
- 如果item高度固定,可以使用RecyclerView.setHasFixedSize(true)方法来避免requestLayout浪费资源
- 如果不要求动画可以通过
((SimpleItemAnimator) rv.getItemAnimator()).setSupportsChangeAnimations(false);来关闭动画
通过重写RecyclerView.onViewRecycled(holder)来回收资源
...