recyclerview的刷新

本文详细介绍了RecyclerView中各种数据刷新方法的使用场景与效果,包括notifyDataSetChanged、notifyItemChanged等,并解释了它们如何影响ViewHolder的复用及数据更新过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

notifyDataSetChanged()

调用此方法后,仅刷新屏幕以内的item,当下次滑动让屏幕外item进来,则再执行onBindViewHolder()进行刷新

notifyItemChanged(int position)

仅更新指定的position的item

notifyItemRangeChanged()

position数据发生了改变,那调用这个方法,就会回调对应position的onBindViewHolder()方法了,因为ViewHolder是复用的,

所以如果position在当前屏幕以外,也就不会回调了,下次position滚动会当前屏幕以内的时候同样会调onBindViewHolder()方法刷新数据了。

notifyItemInserted(position :int)

这个方法是在第position位置被插入了一条数据的时候可以使用这个方法刷新

notifyItemMoved(int fromPosition, int toPosition)

这个方法是从fromPosition移动到toPosition为止的时候可以使用这个方法刷新

notifyItemRangeInserted(int positionStart, int itemCount)

批量添加。

notifyItemRemoved(int position)

第position个被删除的时候刷新,同样会有动画。

notifyItemRangeRemoved(int positionStart, int itemCount)

批量删除。

notifyDataSetChanged—→RecyclerviewDataObserver的onChanged函数,在该函数中调Recyclerview的requestLayout函数重新布局。他的重新布局交给 LayoutManager对象

使用setLayoutManager(),在设置了布局管理器后,调用requestLayout函数进行布局,LayoutManager中执行测量绘制操作,通过get

https://www.kancloud.cn/alex_wsc/android_framework/508113

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值