RecyclerView的复用与回收

本文详细介绍了RecyclerView的复用与回收流程,强调了两者的关系以及刷新机制,特别是局部刷新的使用方法,为初学者提供学习指南。

目录

0.前言:推荐初学者阅读RecyclerView机制

1.复用与回收的关系

1.1复用流程

1.2回收流程

1.3复用与回收的先后关系

2.刷新机制


0.前言:推荐初学者阅读RecyclerView机制

http://t.csdnimg.cn/2hUeU

1.复用与回收的关系

滚动屏幕——先复用,再回收

1.1复用流程

复用流程:缓存 mCachedViews 取 >

                                     缓存 RecycledViewPool 取 >                                                                                                                  Adapter.onCreateViewHolder()直接创建新的

1.2回收流程

遍历移除屏幕的 View,从 View的 LayoutParams 中取出 ViewHolder,塞入 2级缓存 mCachedViews
                 如果 mCachedViews 满了(容量2),则 mCachedViews 移除第一个,用来放要回收的 ViewHolder
                 如果 RecycledViewPool 对应 viewType 的 List 没满(容量5),则从 mCachedViews 移除的 ViewHolder 放入 RecycledViewPool

                 如果RecycledViewPool满了,将会直接丢弃viewHolder

1.3复用与回收的先后关系

复用的对象是原就在mCachedViews,ReclerViewPool内的,不算马上消失的

而回收对象,是马上消失的item,等到复用完成后,这些item才会加入mCachedViews或ReclerViewPool内

2.刷新机制

RecyclerView 支持局部刷新

1、notifyItemChanged(int position, Object payload)
payload参数,传入非空Object对象

2、onBindViewHolder(RecyclerHolder holder, int position, List payloads)
payloads.size 永远是 1,根据 payload参数值,实现局部刷新

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值