RecyclerView

RecyclerView 是一个用于显示集合的视图组;旨在作为替代较旧视图组(如 ListView 和 GridView)的更灵活的方案。 本指南介绍如何在 Xamarin.Android 应用程序中使用和自定义 RecyclerView。

RecyclerView

许多应用需要显示同一类型的集合(如信息、联系人、图像或歌曲);通常情况下,这个集合太大而无法在屏幕上显示,因此需要在一个小窗口中显示此集合,该窗口可以流畅地滚动显示集合中的所有项目。 RecyclerView 是一个 Android 小组件,它显示列表或网格中的项目集合,使用户能够滚动浏览集合。 下面是一个示例应用的屏幕截图,它使用 RecyclerView 在垂直滚动列表中显示电子邮件收件箱内容:

Example app using RecyclerView to list inbox messages

RecyclerView 提供两个极具吸引力的功能:

  • 它采用灵活的体系结构,可让你通过插入首选组件来修改其行为。

  • 它对大型集合非常有效,因为它重用项视图,并且需要使用视图持有者来缓存视图引用。

本指南介绍如何在 Xamarin.Android 应用程序中使用 RecyclerView;介绍如何将 RecyclerView 包添加到 Xamarin.Android 项目,并介绍 RecyclerView 如何在典型应用程序中运行。 提供实际代码示例来演示如何将 RecyclerView 集成到应用程序中、如何实现项视图单击,以及如何在基础数据更改时刷新 RecyclerView。 本指南的前提是你熟悉 Xamarin.Android 开发。

要求

尽管 RecyclerView 通常与 Android 5.0 Lollipop 相关联,但它作为支持库提供 - RecyclerView 适用于面向 API 级别 7 (Android 2.1) 及更高版本的应用。 若要在基于 Xamarin 的应用程序中使用 RecyclerView 功能,需满足以下要求:

  • Xamarin.Android - 必须安装 Xamarin.Android 4.20 或更高版本并配置 Visual Studio 或 Visual Studio for Mac。

  • 应用项目必须包含 Xamarin.Android.Support.v7.RecyclerView 包。 有关安装 NuGet 包的详细信息,请参阅演练:在项目中包括 NuGet

概述

RecyclerView 可以视为 Android 中 ListViewGridView 小组件的替代项。 与其前身一样,RecyclerView 设计为在小窗口中显示大型数据集,但 RecyclerView 提供了更多布局选项,并且更适用于显示大型集合。 如果你熟悉 ListView,那么应知道 ListViewRecyclerView 之间有一些重要区别:

  • RecyclerView 使用起来稍微复杂一些:相比 ListView,必须编写更多代码才能使用 RecyclerView

  • RecyclerView 不提供预定义的适配器;必须实施访问数据源的适配器代码。 但是,Android 包含多个适用于 ListViewGridView 的预定义适配器。

  • 当用户点击某个项目时,RecyclerView 不提供项单击事件;而是由帮助程序类处理项单击事件。 与之相反,ListView 提供项单击事件。

  • RecyclerView 通过回收视图和强制实施视图持有者模式来提高性能,从而消除了不必要的布局资源查找。 在 ListView 中使用视图持有者模式是可选的。

  • RecyclerView 基于模块化设计,可以更轻松地进行自定义。 例如,可以插入不同的布局策略,而无需对应用进行重大代码更改。 相比之下,ListView 的结构相对单一。

  • RecyclerView 包括用于实现项添加和移除的内置动画。 ListView 动画需要应用开发人员完成一些额外的工作。

部分

RecyclerView 部件和功能

本主题介绍 AdapterLayoutManagerViewHolder 如何作为帮助程序类协同工作,以支持 RecyclerView。 它简要概述了每个帮助程序类,并说明了如何在应用中使用它们。

基本 RecyclerView 示例

本主题以 RecyclerView 部件和功能中提供的信息为基础,提供了演示如何实现各种 RecyclerView 元素的真实代码示例,以构建一个真实世界的照片浏览应用。

扩展 RecyclerView 示例

本主题为基本 RecyclerView 示例中的示例应用添加了额外代码,以演示如何处理项单击事件,并在底层数据源发生变化时更新 RecyclerView

总结

本指南介绍了 Android RecyclerView 小组件;说明了如何将 RecyclerView 支持库添加到 Xamarin.Android 项目中,RecyclerView 如何循环视图,如何强制执行视图持有者模式以提高效率,以及组成 RecyclerView 的各种帮助程序类如何协作显示集合。 它提供了示例代码来演示 RecyclerView 如何集成到应用程序中,介绍了如何通过插入不同的布局管理器来定制 RecyclerView 的布局策略,并描述了如何处理项单击事件及通知 RecyclerView 数据源更改。

有关 RecyclerView 的详细信息,请参阅 RecyclerView 类引用