目录
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缓存实例
标签:动画,缓存,区别,item,刷新,ListView,RecyclerView From: https://blog.csdn.net/m0_74837900/article/details/137635809item02数据源改变,
而其他item不变,算添加上去的,放临时空间