Android 强大的滚动控件 RecyclerView

本文介绍了从 ListView 过渡到 RecyclerView 的原因,并详细阐述了 RecyclerView 的基本用法,包括设置依赖、创建布局、定义适配器。接着展示了如何定制 RecyclerView 界面,实现横向滚动和瀑布流布局。最后提到了 RecyclerView 的点击事件处理,解释了其优于 ListView 的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       ListView 由于其强大的功能,在过去的 Andorid 开发中使用非常广泛,直到今天仍然还有很多人在使用着,不过 ListView 也有自己的缺陷,例如需要优化来提升运行效率,还有就是只能够纵向移动,我们要想实现横向移动就实现不了,ListView 的扩展性也不好

       为此 Android 提供了一个更强大的控件 -- RecyclerView 它可以说是一个增强版的 ListView 不仅可以实现和 ListView 同样的效果,还优化了 ListView 存在的各种不足,现 RecyclerView 也是官方非常推荐使用的滚动控件,大部分的开发人员也都从 listView 转向了 RecyclerView,今天我们就来详细了解一下 RecyclerView




一、RecyclerView 的基本用法


首先,我们新建一个 RecyclerView 项目,并让 Andorid Studio 自动给我们创建好活动

       RecyclerView 属于新增的控件,为了让 RecyclerView 在所有 Android 版本上都能使用,Andorid 团队将 RecyclerView 定义在了 support 库当中,因此,想要使用 RecyclerView 这个控件,首先需要在项目的 build.gradle 中添加相应的依赖库才行,这里如果大家对 build.gradle 的使用还不是太熟悉,建议大家先阅读

  Android 详解 build.gradle 文件 

       在上面的文章中我们对 build.gradle 的使用进行了非常详细的讲解,接下来我们来进行依赖,打开 app/build.gradle 文件,在 dependenies 闭包中添加如下内容:


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.1.0'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:recyclerview-v7:25.1.0'
}

       大家看到最后一行代码,就是我们刚刚添加进来的,上面的都是 Android Studio 自动生成的,添加完记得 Sync Now 来进行同步,然后修改 Activity_main.xml 中的代码如下:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        
    </android.support.v7.widget.RecyclerView>
    
</LinearLayout>

       在布局中加入 RecyclerView 控件也是非常简单的,先为 RecyclerView 指定一个 id,然后设置了宽和高,这些大家都非常熟悉了,需要注意的是,由于 RecyclerView 不是内置在系统 SDK 当中的,所以需要把完整的包路径写出来


二、定制 RecyclerView 界面


       这里和 listView 一样,我们可以对 RecyclerView 界面进行定制,让它来显示更加丰富的界面,以便来适应我们工程开发中的需求,这里首先我们来准备一组图片,来对应我们将要展示的水果名称,接着定义一个实体类,作为 RecyclerView 适配器的适配类型,新建 Fruit,代码如下:


public class Fruit {

    private String name;
    private int imageId;

    public Fruit(String name, int imageId) {
        this.name = name;
        this.imageId = imageId;
    }

    public String getName() {
        return name;
    }

    public int getImageId() {
        return imageId;
    }
}

Fruit 类中只有两个字段,name 表示水果的名字,imageId 表示对应水果的图片资源 id

然后需要为 RecyclerView 的子项指定一个我们自定义的布局,在 layout 目录下新建 recyclerview_item.xml,代码如下所示:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageView"
        android:layout_marginLeft="20dp"
        android:layout_width="wrap_content"
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值