【Android】RecyclerView和ListView的区别

1、
ListView:并不强制使用ViewHolder,如果要使用,则需要自己定义,如果不使用,ListView每次getView()的时候都需要去findViewById,会造成性能下降,滑动卡顿等,所以推荐使用ViewHolder。
RecyclerView:必须使用ViewHolder。

2、
ListView:只能在垂直方向滑动。
RecyclerView:支持水平方向滑动,垂直方向滑动,多行多列瀑布流的方式等。
3、
ListView:有几个默认的Adapter,分别是ArrayAdapter、CursorAdapter和SimpleCursorAdapter。
RecyclerView:Adapter需要自己实现。
4、
ListView:拥有子Item的监听函数:AdapterView.OnItemClickListener。
RecyclerView:需要自己实现接口,来实现子Item的点击事件,虽然比较麻烦,但是扩展性好。
5、
两者均会复用item,但RecyclerView提供了额外的缓存机制,大体分五级缓存,ListView无缓存机制。

两者各自独有的特性:
ListView:可以在布局文件里通过以下代码直接添加分割行。

  android:divider="@android:color/transparent"
  android:dividerHeight="5dp"

RecyclerView:RecyclerView.ItemAnimator被提供用于在RecyclerView添加、删除或移动item时处理动画效果。

点赞