RecyclerView与ListView区别

目录

1.先说结论

2.继承关系

3.布局操作

4.动画效果

5.数据刷新方式

6.缓存机制

6.1 ListView

6.2 RecyclerView缓存实例


1.先说结论

RecyclerView是我们优先考虑的,已经规范化的,自带动画效果的,布局更多样的控件

2.继承关系

ListView-》继承BaseAdapter,需要自定义ViewHolder与优化converView

RecyclerView-》继承RecyclerView.Adapter和ReclerView.Holder

 

因此RecyclerView编写更规范

RecyclerView复用item能直接全完成,而ListView还需Tag值

3.布局操作

ListView只支持单一的纵向布局

RecyclerView支持线性布局(横向和纵向),表格布局和瀑布流布局

4.动画效果

在RecyclerView中,内置有许多动画API,例如:notifyItemChanged();

也可以自定义动画效果,

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

5.数据刷新方式

ListView 刷新调用 notifyDataSetChanged() ,全局刷新数据 (每个 Item 数据会重新加载)

RecyclerView 支持局部刷新

其实ListView也可以局部刷新,不过要手动去Adapter中,实现一个onItemChanged()方法,在方法里面获取到这个item的position

6.缓存机制

ListView和RecyclerView最大的区别在于数据源改变时的缓存的处理逻辑:

        ListView是”一锅端”,将所有的mActiveViews都移入了二级缓存mScrapViews                          RecyclerView是灵活地对每个View修改标志位,区分是否重新bindView

6.1 ListView

6.2 RecyclerView缓存实例

item02数据源改变,

而其他item不变,算添加上去的,放临时空间

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值