RecyclerView
RecyclerView是一种新型的列表控件,它的目标是为任何基于适配器的视图提供相似的渲染方式。RecyclerView不仅可以实现和ListView同样的效果,还优化了ListView中的各种不足。
与ListView相比,RecyclerView的优势为:
- 展示效果:RecyclerView控件可以通过LayoutManager类实现横向或竖向的列表效果、瀑布流效果和GridView效果,而ListView控件只能实现竖直的列表效果。
- 适配器:RecyclerView控件使用的是RecyclerView.Adapter适配器,该适配器强制使用ViewHolder类,使代码编写规范化,避免了初学者写的代码性能不佳。
- 复用效果:RecyclerView控件复用item对象的工作由该控件自己实现,而ListView控件复用item对象的工作需要开发者实现。
- 动画效果:RecyclerView控件可以通过setItemAnimator()方法为item添加动画效果,而ListView控件不可以通过该方法为Item添加动画效果。
RecyclerView的常用方法见表1。需要注意的是RecyclerView没有提供setOnItemClickListener()方法,RecyclerView的item单击事件往往在Adapter中实现,在Adapter中可以对整个item或者item的各个控件实现单击事件。
表1 RecyclerView的常用方法
方法名 |
作用 |
void setAdapter(Adapter adapter) |
设置RecyclerView的数据适配器 |
void setLayoutManager(@Nullable LayoutManager layout) |
设置RecyclerView的布局方法,包括LinearLayoutManager(线性布局管理器)、GridLayoutManager(网格布局管理器)、StaggeredGridLayoutManager(瀑布流布局管理器) |
RecyclerView的使用步骤如下。
1)设计含RecyclerView控件的界面layout。
2)设计RecyclerView控件item的layout。
3)设计RecyclerView控件需要显示的数据类。
4)设计RecyclerView.Adapter,需要实现下面几个方法:
- onCreateViewHolder():主要用于创建ViewHolder实例,加载item界面的布局文件;
- onBindViewHolder():主要将获取的数据设置到对应的控件上;
- getItemCount():获取列表条目的总数;
5)设计RecyclerView中的方法。
- setLayoutManager():设置RecyclerView的布局方式;
- setAdapter():设置RecyclerView的适配器;
6)设计MainActivity。
- 初始化界面、数据。
- 设置Adapter。
RecyclerView怎么用?