作为ListView的豪华加强版,Android支持库中的RecyclerView具有诸多优点。
本篇博客主要用于记录RecyclerView的基本使用方法。
当然在阅读后文前,最好对ListView及对应ViewHolder的使用有一定的了解。
一、概述
RecyclerView的关键类主要有三个,包括RecyclerView、RecyclerView.ViewHolder和RecyclerView.Adpter。
其中:
ViewHolder的作用与使用ListView时,定义的ViewHolder一致,主要用于容纳Item View的视图。
Adapter用于创建必要的ViewHolder,同时将视图和具体的数据绑定在一起。
RecyclerView需要显示视图对象时,就会去调用对应Adapter的接口,整个过程包括以下步骤:
1、调用Adapter的getItemCount方法,询问数据列表中包含多少个对象。
2、调用Adapter的createViewHolder方法,创建ViewHolder及ViewHolder要显示的视图。
3、调用Adapter的onBindViewHolder方法,将具体位置的数据与视图绑定起来,即使用视图来显示数据。
与ListView使用ViewHolder的情况一致,RecyclerView不会频繁调用createViewHolder创建ViewHolder。
当创建的ViewHolder足够多时,RecyclerView就可以回收利用旧的ViewHolder,并利用onBindViewHolder将其与
新的数据绑定,达到节约时间和内存的目的。
了解了基本的原理后,我们来看一下RecyclerView使用的例子。
二、使用方法
1、RecyclerView
RecyclerView定义于com.android.support:recyclerview-v7中,使用时需要添加该库。
使用RecyclerView时的布局类似下图:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/crime_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
在界面中加载RecyclerView的方式很简单,如下面代码所示:
public