常识Android成长之路

ListView和RecyclerView的区别

2019-02-25  本文已影响128人  Coder_老王

在搞懂这个问题之前,我们最好先搞明白ListView和RecyclerView的实现原理,这里推荐两篇文章:

  1. 郭霖的《Android ListView工作原理完全解析》
  2. 曾志刚的《RecyclerView剖析》

那么,ListView和RecyclerView的主要区别有哪些呢?

一、缓存机制的不同

这里可以参考《Android ListView 与 RecyclerView 对比浅析—缓存机制》

二、布局效果、常用功能与API等

参考《ListView 与 RecyclerView 简单对比》

使用上

ListView

  1. 继承重写BaseAdapter类;
  2. 自定义ViewHolder与convertView的优化;

RecyclerView

  1. 继承重写RecyclerView.Adapter与RecyclerView.ViewHolder
  2. 设置LayoutManager,以及layout的布局效果

区别:

  1. ViewHolder的编写规范化,ListView是需要自己定义的,而RecyclerView是规范好的;
  2. RecyclerView复用item全部搞定,不需要像ListView那样setTag()与getTag();
  3. RecyclerView多了一些LayoutManager工作,但实现了布局效果多样化;

布局效果

空数据处理

在ListView中有个setEmptyView() 用来处理Adapter中数据为空的情况;但是在RecyclerView中没有这个API,所以在RecyclerView中需要进行一些数据判断来实现数据为空的情况;

HeaderView 与 FooterView

局部刷新

动画效果:

ItemTouchHelper:

Item点击事件:

嵌套滚动机制:

上一篇 下一篇

猜你喜欢

热点阅读