Xamarin.Forms ListView

Download Sample下载示例

ListView 是用于显示数据列表的视图,尤其是需要滚动的长列表。

重要

CollectionView 是使用不同布局规范显示数据列表的视图。 它的目标是提供取代 ListView 的更灵活、更高效的方案。 有关详细信息,请参阅 Xamarin.Forms CollectionView

用例

在要显示可滚动数据列表的任何情况下,都可以使用 ListView 控件。 ListView 类支持上下文操作和数据绑定。

不应将 ListView 控件与 TableView 控件混淆。 每当具有非绑定的选项或数据列表时,TableView 控件都是一个更好的选项,因为它允许以 XAML 指定预定义的选项。 例如,iOS“设置”应用主要包含预定义的选项集,它更适合使用 TableView 而非 ListView

ListView 类不支持以 XAML 定义列表项,你必须将 ItemsSource 属性或数据绑定与 ItemTemplate 一起使用来定义列表中的项。

ListView 最适合用于包含单个数据类型的集合。 存在此要求是因为,只能对列表中的每一行使用一种类型的单元格。 TableView 控件可以支持多个单元格类型,因此当你需要显示多个数据类型时,这是一个更好的选择。

有关将数据绑定到 ListView 实例的详细信息,请参阅 ListView 数据源

组件

ListView 控件有许多组件可用来利用每个平台的原生功能。 以下各部分阐释了这些组件。

页眉和页脚

页眉和页脚组件显示在列表的开头和末尾,与列表的数据分开。 页眉和页脚可以绑定到来自 ListView 的数据源的单独数据源。

可以对 ListView 中的数据进行分组,以便更轻松地进行导航。 组通常会进行数据绑定。 以下屏幕截图显示了包含分组的数据的 ListView

单元

ListView 中的数据项称为单元格。 每个单元格对应于一行数据。 有内置单元格可供选择,你也可以定义自己的自定义单元格。 内置单元格和自定义单元格都可以用 XAML 或代码进行使用/定义。

  • 内置单元格(例如 TextCellImageCell)对应于原生控件,性能特别高。
    • TextCell 显示文本字符串,也可以选择包含详细信息文本。 详细信息文本显示为第二行,字体较小,带有强调色。
    • ImageCell 显示包含文本的图像。 在左侧显示为包含图像的 TextCell
  • 自定义单元格用于呈现复杂数据。 例如,自定义单元格可用于显示包含专辑和艺术家的歌曲列表。

以下屏幕截图显示了包含 ImageCell 项的 ListView

若要详细了解如何在 ListView 中自定义单元格,请参阅自定义 ListView 单元格外观

功能

ListView 类支持多种交互样式。

  • 拉取刷新允许用户拉取 ListView 以刷新内容。
  • 上下文操作允许开发人员指定对各个列表项的自定义操作。 例如,你可以在 iOS 上实现滑动触发操作,或者在 Android 上实现长按操作。
  • 选择允许开发人员将功能附加到列表项上的选择和取消选择事件。

以下屏幕截图显示了包含上下文操作的 ListView

若要详细了解 ListView 的交互功能,请参阅 ListView 中的操作和交互