RecyclerView总结学习(一)
RecyclerView已经出现有一年多了,各种“该有的”东西也都有了。这里就来总结学习一发!
照常先贴学习链接:
http://blog.csdn.net/lmj623565791/article/details/45059587
https://github.com/codepath/android_guides/wiki/Using-the-RecyclerView
第一篇博客鸿洋大神已经写的非常非常完美了,第二篇算是google工程是提供的一些RecyclerView的使用。两篇相互学习相互补充吧!
RecyclerView综述
如果你想使用RecyclerView的话,你将必须按照下面这么做:
RecyclerView.Adapter
将数据集与相应的视图绑定LayoutManager
解决数据项的放置位置问题ItemAnimator
与动画的常用操作,如添加或项目删除的动画效果
与ListView相比较(面试)
- 在Adapters中需要使用ViewHolder -
ListView
的Adapter没有强制要求使用ViewHolder来提高性能,相比较使用RecyclerView
的Adapter则需要使用ViewHolder。 - 可定制的项目布局 -
ListView
仅仅能够垂直布局或者线性布局,它不能够被定制。相反,RecyclerView
通过RecyclerView.LayoutManager
可以设置任何数据项的布局,包括水平列表或交错网格。 - 简单的数据操作动画 -数据项的添加和删除
ListView
都不提供任何的特殊方法。相反,RecyclerView
则通过RecyclerView.ItemAnimator
来处理操作数据项的动画。 - 手动的数据来源 -
ListView
有ArrayAdapter
和CursorAdapter
分别来处理数组和数据库等一些数据。相反RecyclerView.Adapter
需要我们自己定义实现数据提供给Adapter。 - 手动的项目分割线 -
ListView
有android:divider
属性来提供简单的列表中数据项之间的分割线,相反RecyclerView
则需要使用RecyclerView.ItemDecoration
来设置分割线 - 手动的点击检测 -
ListView
有AdapterView.OnItemClickListener
接口为列表的独立项绑定点击事件。而RecyclerView
仅仅对RecyclerView.onItemTouchListener
提供了支持,但没有内置的点击处理操作。
关于RecyclerView
使用,在鸿洋老师的博客中可以学习到,我这里就不累述了。讲讲现在很流行的RecyclerView
与CardView
的搭配使用吧。原文如下:
http://www.androidhive.info/2016/05/android-working-with-card-view-and-recycler-view/
这里面有很多的Material Design
的知识,大家可以翻阅我之前写的Material Design专题的内容。
总的来说还是按照RecyclerView
的使用方法走的。具体使用步骤如下:
- 准备好数据集
- 设置
RecyclerView.LayoutManager
- 写好
RecyclerView.Adpater
并设置适配 - 设置
RecyclerView.ItemAnimator
- 如果你不是使用
CardView
你可能还需要设置RecyclerView.ItemDecoration