您可以使用惰性网格管理大型数据集和动态内容,从而提高应用性能。借助惰性网格可组合函数,您可以在可滚动容器中显示跨多列或多行的项目。
版本兼容性
此实现要求您的项目 minSDK 设置为 API 级别 21 或更高。
依赖项
确定网格方向
阻止 LazyHorizontalGrid
和 LazyVerticalGrid
可组合函数支持以网格形式显示项目。惰性垂直网格在其垂直可滚动的容器中显示项目,这些项目跨多列排列;而惰性水平网格在水平轴上具有相同的行为。
创建可滚动网格
以下代码创建了一个具有三列的水平滚动网格
@Composable fun ScrollingGrid() { val itemsList = (0..15).toList() val itemModifier = Modifier .border(1.dp, Color.Blue) .width(80.dp) .wrapContentSize() LazyHorizontalGrid( rows = GridCells.Fixed(3), horizontalArrangement = Arrangement.spacedBy(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp) ) { items(itemsList) { Text("Item is $it", itemModifier) } item { Text("Single item", itemModifier) } } }
关于代码的关键点
LazyHorizontalGrid
可组合函数确定网格的水平方向。- 要创建垂直网格,请改用
LazyVerticalGrid
。
- 要创建垂直网格,请改用
rows
属性指定如何排列网格内容。- 对于垂直网格,请使用
columns
属性指定排列方式。
- 对于垂直网格,请使用
items(itemsList)
将itemsList
添加到LazyHorizontalGrid
中。lambda 为每个项目渲染一个Text
可组合函数,并将文本设置为项目描述。item()
向LazyHorizontalGrid
添加一个单项,而 lambda 以与items()
类似的方式渲染一个Text
可组合函数。GridCells.Fixed
定义行或列的数量。要创建包含尽可能多行的网格,请使用
GridCells.Adaptive
设置行数。在以下代码中,
20.dp
值指定每列至少为 20.dp,并且所有列具有相同的宽度。如果屏幕宽度为 88.dp,则有 4 列,每列宽度为 22.dp。
结果
LazyHorizontalGrid
创建的水平可滚动网格。包含此指南的集合
本指南属于这些经过精心整理的快速指南集合,涵盖更广泛的 Android 开发目标

显示列表或网格
列表和网格可让您的应用以视觉上令人愉悦、易于用户使用的形式显示集合。

显示交互式组件
了解可组合函数如何让您轻松创建基于 Material Design 设计系统的精美 UI 组件。

Compose 基础知识(视频合集)
本系列视频介绍了各种 Compose API,快速向您展示了哪些 API 可用以及如何使用它们。
有疑问或反馈?
前往我们的常见问题页面了解快速指南,或联系我们,告诉我们您的想法。