ListView和RecyclerView的主要区别

布局效果不同

  1. ListView的布局单一,只有一个纵向效果
  2. RecyclerView的布局效果丰富,可以在LayoutMananger中设置线性布局(纵向、横向)、表格布局、瀑布流布局。
  3. 在RecyclerView中,如果存在的LayoutMananger不能满足需求,可以在LayoutMananger的API中自定义Layout:例如scrollToPosition(),setOrientation()等等。

空数据处理

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

局部刷新

  1. 在listView中通常刷新数据是用notifyDataSetChanged(),这种刷新数据是全局刷新(每个item的数据都会重现加载一遍)。
  2. RecyclerView支持局部刷新,例如:notifyitemChanged();
  3. 如果想在listview中实现局部刷新,我们可以在Adapter中,实现一个onitemChanged方法,在方法中获取到这个item的position(可以通过getFirstVisiblePosition()),然后调用getView()方法在刷新这个item的数据。

动画效果

1.在RecyclerView有自己的动画效果,如:notifyItemChanged(), notifyDataInserted(), notifyItemMoved()等等;如果我们需要用自己的动画,RecyclerView也提供了RecyclerView.ItemAnimator类。
2.listView没有实现动画也没有提供api,不过我们可以自己在Adapter中实现。

只是部分,还有一些没记笔记。

你可能感兴趣的:(ListView和RecyclerView的主要区别)