RecyclerView 和 ListView的区别

来源:互联网 发布:苹果音乐编辑软件 编辑:程序博客网 时间:2024/05/17 15:35
> Android 优雅的为RecyclerView添加HeaderView和FooterView--http://blog.csdn.net/lmj623565791/article/details/51854533
> RecyclerView 和 ListView 在 Android L 引入嵌套滚动机制之后的对比
 Android 默认提供的 RecyclerView 就能支持 线性布局、网格布局、瀑布流布局 三种(这里我们暂且不提代码细节,后文再说),而且同时还能够控制横向还是纵向滚动。怎样,从效果上足以碾压 ListView 有木有。
  横向滚动的ListView开源控件是不是可以不用再找了?对,你没看错!
  瀑布流效果的开源控件是不是可以不用再找了?对,你没看错!
  连横向滚动的GridView都不用找了!对,你没看错!
而 LayoutManager 只是一个抽象类而已,系统已经为我们提供了三个相关的实现类 LinearLayoutManager(线性布局效果)、GridLayoutManager(网格布局效果)、StaggeredGridLayoutManager(瀑布流布局效果)。

RecyclerView 基础使用关键点同样有两点:
  继承重写 RecyclerView.Adapter 和 RecyclerView.ViewHolder
  设置布局管理器,控制布局效果

RecyclerView 相比 ListView 在基础使用上的区别主要有如下几点:
  ViewHolder 的编写规范化了
  RecyclerView 复用 Item 的工作 Google 全帮你搞定,不再需要像 ListView 那样自己调用 setTag
  RecyclerView 需要多出一步 LayoutManager 的设置工作

如果要给 ListView 的 Item 加动画,我们只能自己通过属性动画来操作 Item 的视图: https://github.com/nhaarman/ListViewAnimations

系统也为我们提供了两个默认的动画实现:SimpleItemAnimator 和 DefaultItemAnimator。而 RecyclerView 在不手动调用 setItemAnimator 的情况下,则默认用了内置的 DefaultItemAnimator 。
   > 根据自己的使用场景来选择是要用 RecyclerView 还是 ListView:https://github.com/D-clock/AndroidSystemUiTraining

> ListView 的基础使用大家再熟悉不过,其使用的关键点主要如下:
  继承重写 BaseAdapter 类
  自定义 ViewHolder 和 convertView 一起完成复用优化工作
ListView 提供了 setEmptyView 这个 API 来让我们处理 Adapter 中数据为空的情况,只需轻轻一 set 就能搞定一切。代码设置和效果如下
        mListView = (ListView) findViewById(R.id.listview);
        mListView.setEmptyView(findViewById(R.id.empty_layout));//设置内容为空时显示的视图


[Android优化进阶] 提高ListView性能的技巧 -- http://www.jianshu.com/p/3e22d53286ca#
ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。
1.在adapter中的getView方法中尽量少使用逻辑
2.尽最大可能避免GC
3.滑动的时候不加载图片
4.将ListView的scrollingCache和animateCache设置为false
5.item的布局层级越烧越好
6.使用ViewHolder

0 0