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 或代码进行使用/定义。
以下屏幕截图显示了包含 ImageCell 项的 ListView
:
若要详细了解如何在 ListView
中自定义单元格,请参阅自定义 ListView 单元格外观。
功能
ListView
类支持多种交互样式。
- 拉取刷新允许用户拉取
ListView
以刷新内容。 - 上下文操作允许开发人员指定对各个列表项的自定义操作。 例如,你可以在 iOS 上实现滑动触发操作,或者在 Android 上实现长按操作。
- 选择允许开发人员将功能附加到列表项上的选择和取消选择事件。
以下屏幕截图显示了包含上下文操作的 ListView
:
若要详细了解 ListView
的交互功能,请参阅 ListView 中的操作和交互。