ListView
ListView
是一个列表控件,需要搭配Adapter
使用。通过自定义一个Adapter
,继承自BaseAdapter
,然后在adapter
中完成数据的绑定,最后通过ListVIew.setAdapter()
方法将listView
和adapter
绑定起来。
ListView
可以添加表头和表尾,
addHeaderView(View v)
:添加headView
(表头),括号中的参数是一个View
对象addFooterView(View v)
:添加footerView
(表尾),括号中的参数是一个View
对象addHeaderView(headView, null, false)
:和前面的区别:设置Header
是否可以被选中addFooterView(View,view,false)
:同上
设置ListView
ListView
设置只需要一个属性,就是适配器Adapter
。适配器中通过getview
()方法获取每一行需要的item
。
RecyclerView
RecyclerView
是Android5.0
之后谷歌推出的一个新控件,用来代替ListView
,更加灵活和强大。使用RecyclerView
的时候必须制定一个适配器Adapter
和一个布局管理器LayoutManager
。适配器继承自RecyclerView.Adapter
类,具体实现类似于ListView
的适配器。布局管理器用于确定RecyclerView
中Item
的展示方式以及决定何时复用已经不可见的Item
,避免重复创建以及执行高成本的findViewById()
方法。
设置RecyclerView
RecyclerView可以设置四个属性
- LayoutManager(布局管理器,必选)
- Adapter(适配器,必选)
- ItemDecoration(每个Item之间的间隙,默认为空,非必选)
- ItemAnimator(添加删除Item的动画,默认WeirDefaultItemAnimator,非必选)
三种布局管理器
RecyclerView能够实现各种各样的布局效果,核心在于LayoutManager,除了这三种以外,如果想实现自定义效果,可以自定义布局管理器,继承自LayoutManager,实现相应的方法。
-
LinerLayoutManager 以垂直或者水平列表方式展示Item
-
GridLayoutManager 以网格方式展示Item
-
StaggeredGridLayoutManager 以瀑布流方式展示Item
总结
- 在一些场景下,ListView和RecyclerView的效果没有太大区别,两者都能很好的工作。
- ListView比RecyclerView实现要简单一些,ListView比较简单和快捷,RecyclerView暴露了更多的接口,所以更加的完善和强大灵活。