Listview与RecyclerView对比浅析【重点对比缓存】(1)

在RecyclerView 中,如果存在的 LayoutManager 不能满足需求,可以自定义 LayoutManager

2. Item 点击事件


RecyclerView不支持 item 点击事件,只能用回调接口来设置点击事件

ListView的 item 点击事件直接是setOnItemClickListener

3.局部刷新


在ListView中通常刷新数据是用notifyDataSetChanged() ,但是这种刷新数据是全局刷新的(每个item的数据都会重新加载一遍),这样一来就会非常消耗资源;

RecyclerView中可以实现局部刷新,例如:notifyItemChanged();

如果要在ListView实现局部刷新,依然是可以实现的,当一个item数据刷新时,我们可以在Adapter中,实现一个notifyItemChanged()方法,在方法里面通过这个 item 的 position,刷新这个item的数据

4.动画效果


在RecyclerView中,已经封装好API来实现自己的动画效果;并且如果我们需要实现自己的动画效果,我们可以通过相应的接口实现自定义的动画效果(RecyclerView.ItemAnimator类),然后调用RecyclerView.setItemAnimator() (默认的有SimpleItemAnimator与DefaultItemAnimator);

但是ListView并没有实现动画效果,但我们可以在Adapter自己实现item的动画效果;

5.缓存区别


层级不同

ListView有两级缓存,在屏幕与非屏幕内。mActivityViews + mScrapViews

RecyclerView比ListView多两级缓存:支持开发者自定义缓存处理逻辑,RecyclerViewPool(缓存池)。并且支持多个离屏ItemView缓存(缓存屏幕外2个 itemView)。 mAttachedScrap +

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值