【Compose multiplatform教程14】【组件】LazyColumn组件

查看全部组件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)
                    )
                }
            }
        }
    }

运行效果

相关推荐
ttod_qzstudio11 分钟前
深入理解 Vue 3 的 h 函数:构建动态 UI 的利器
前端·vue.js
_大龄30 分钟前
前端解析excel
前端·excel
一叶茶1 小时前
移动端平板打开的三种模式。
前端·javascript
前端大卫1 小时前
一文搞懂 Webpack 分包:async、initial 与 all 的区别【附源码】
前端
Want5951 小时前
HTML音乐圣诞树
前端·html
老前端的功夫2 小时前
前端浏览器缓存深度解析:从网络请求到极致性能优化
前端·javascript·网络·缓存·性能优化
Running_slave2 小时前
你应该了解的TCP滑窗
前端·网络协议·tcp/ip
程序员小寒3 小时前
前端高频面试题之CSS篇(一)
前端·css·面试·css3
安卓理事人3 小时前
安卓LinkedBlockingQueue消息队列
android
颜酱3 小时前
Monorepo 架构以及工具选型、搭建
前端·javascript·node.js