Jetpack Compose 列表

延迟列表

系统会对所有列表项进行组合和布局,无论它们是否可见,因此如果您需要显示大量列表项(或长度未知的列表),则使用 [Column] 等布局可能会导致性能问题。

Compose 提供了一组组件,这些组件只会对在组件视口中可见的列表项进行组合和布局。这些组件包括 [LazyColumn] 和 [LazyRow]

`item()`\] 用于添加单个列表项,\[`items(Int)`\] 用于添加多个列表项: ![image.png](https://file.jishuzhan.net/article/1778350224218001410/e72332824a9576042ab4ab31d57fd791.webp) ```ts LazyColumn(modifier = modifier.fillMaxWidth(), contentPadding = PaddingValues(top = 100.dp)) { // Add a single item item { Text(modifier = Modifier.fillMaxWidth().height(50.dp).background(color = Color.Black).padding(all = 15.dp), text = "First item", color = Color.White) } // Add 5 items items(5) { index -> Text(modifier = Modifier.fillMaxWidth().height(50.dp).background(color = Color.Blue).padding(all = 15.dp), text = "Item: $index", color = Color.White) } // Add another single item item { Text(modifier = Modifier.fillMaxWidth().height(50.dp).background(color = Color.Green).padding(all = 15.dp), text = "Last item") } } ``` 还有许多扩展函数可用于添加列表项的集合,例如 `List`。借助这些扩展函数,我们可以轻松迁移上述 \[`Column`\] 示例 ![image.png](https://file.jishuzhan.net/article/1778350224218001410/cecc86bf140c9779951fbbdbea50ed36.webp) ```ts @Composable private fun example2(modifier:Modifier = Modifier) { val messages = arrayListOf("Title1","Title2", "Title3", "Title4", "Title5", "Title6", "Title7", "Title8") /** * import androidx.compose.foundation.lazy.items */ LazyColumn(modifier = modifier, contentPadding = PaddingValues(top = 100.dp)) { items(messages) { message -> MessageRow(message) } } } @Composable private fun MessageRow(message:String) { ElevatedCard( elevation = CardDefaults.cardElevation( defaultElevation = 6.dp ), modifier = Modifier .fillMaxWidth() .height(150.dp) .padding(start = 15.dp, end = 15.dp, top = 15.dp) ) { Text( text = message, modifier = Modifier .padding(16.dp), textAlign = TextAlign.Center, ) } } ``` [上一篇 Jetpack Compose 分页器 Pager](https://juejin.cn/post/7356044171242864666 "https://juejin.cn/post/7356044171242864666")

相关推荐
Fate_I_C7 小时前
Android Jetpack 是什么
kotlin·android jetpack
_昨日重现6 天前
Jetpack系列之Compose Scaffold
android·android jetpack
我命由我123456 天前
Android Studio - Android Studio 中的 View Live Telemetry
经验分享·学习·android studio·学习方法·android jetpack·android-studio·android runtime
_昨日重现8 天前
Jetpack系列之Compose TopBar
android·android jetpack
ljt272496066110 天前
Compose笔记(七十)--movableContentWithReceiverOf
笔记·android jetpack
_昨日重现11 天前
Jetpack系列之Compose Text
android jetpack
用户9851200358312 天前
Compose案例 — Android 调用系统相机拍照
android jetpack
黄林晴12 天前
告别手写延迟!Android Ink API 1.0 正式版重磅发布,4ms 极致体验触手可及
android·android jetpack
黄林晴13 天前
Compose Multiplatform 1.10.0 重磅发布!三大核心升级,跨平台开发效率再提升
android·android jetpack
Jony_13 天前
Android 设计架构演进历程
android·android jetpack