查看全部组件https://blog.csdn.net/b275518834/article/details/144751353
LazyColumn
功能说明:针对需要显示大量列表数据的情况进行优化,它会根据屏幕的可见区域动态地加载和显示内容,避免一次性加载所有数据,从而显著提高性能和内存使用效率,确保界面的流畅性和响应性。
示例场景:在社交媒体应用中,动态列表可能包含大量的帖子,使用 LazyColumn 可以让用户在滚动浏览时快速加载可见区域的内容;在新闻客户端,长长的新闻列表也能通过此组件高效展示。
垂直的列表:
Kotlin
@Composable
fun SimpleLazyRowExample() {
LazyRow(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
) {
val items = listOf("苹果", "香蕉", "橙子", "葡萄")
items.forEach { item ->
item {
Text(
text = item,
modifier = Modifier
.padding(horizontal = 8.dp)
)
}
}
}
}
运行效果;

垂直的列表
Kotlin
@Composable
fun SimpleLazyColumnExample() {
LazyColumn(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
) {
val items = listOf("苹果", "香蕉", "橙子", "葡萄")
items.forEach { item ->
item {
Text(
text = item,
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 8.dp)
)
}
}
}
}
运行效果;

Grid网格效果
Kotlin
@Composable
fun GridViewLikeLazyColumnExample() {
LazyVerticalGrid(
columns = GridCells.Fixed(3), // 设置为3列
contentPadding = PaddingValues(16.dp), // 内容的内边距
verticalArrangement = Arrangement.spacedBy(8.dp), // 垂直方向上列表项的间距
horizontalArrangement = Arrangement.spacedBy(8.dp) // 水平方向上列表项的间距
) {
val items = listOf("苹果", "香蕉", "橙子", "葡萄", "芒果", "草莓", "西瓜", "菠萝")
items.forEach { item ->
item {
Text(
text = item,
modifier = Modifier
.fillMaxSize()
.padding(8.dp)
)
}
}
}
}
运行效果
