您可以使用惰性网格管理大型数据集和动态内容,从而提高应用性能。使用惰性网格可组合项,您可以在可滚动容器中显示项目,跨多个列或行展开。
版本兼容性
此实现要求您的项目 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,快速向您展示可用的内容以及如何使用它们。
有问题或反馈?
访问我们的常见问题页面,了解快速指南,或与我们联系,告诉我们您的想法。