ListView和RecyclerView 的区别

1.缓存不同
     a.ListView 是做的二级缓存,缓存的是View(ViewHolder需要自己去定义,如果不使用ViewHolder的话,每次getView的时候都会调用findViewById(int),这将导致ListView性能展示迟缓.
     b.RecyclerView 做的是四级缓存,缓存的是Holder.默认缓存的数量是5个.(页面优化,也可以从设置缓存数量这块入手),所有的RecyclerView 共用一个缓存池.
      // RecyclerView.RecycledViewPool viewPool=new RecyclerView.RecycledViewPool();
      // viewPool.setMaxRecycledViews(1,8);
      // recyclerView.setRecycledViewPool(viewPool);
  2.LayoutManager
    a.ListView 只支持垂直布局
    b.RecyclerView,支持三种类型的布局,垂直,瀑布流,横向

  3.ItemAnimator
    相对于ListView, RecyclerView的ItemAnimator提供了添加,移除,移动item时候的处理动画效果,如果不想自定义动画,可以采用DefaultItemAnimator 他默认的动画来实现.

  4.ItemDecoration
    a,ListView 在xml中可以设置分隔符
    b.RecyclerView 默认情况下并不在Item之间展示分割线.不过可以应用官方的DividerItemDecoration.java来实现

  5.RecyclerView 增加了条目手势处理OnItemTouchListener 监听,拦截触摸事件更多的控制权限;而ListView 只有OnItemClickListener 点击事件

你可能感兴趣的:(安卓)