You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中传递LazyColumn作用域内容至函数报错问题

问题分析与修复

你的代码报错是因为items()函数需要的是数据源集合(比如List<*>),但你传入的是LazyListScope.() -> Unit类型的作用域函数,类型不匹配导致“未解析引用”。

如果你想封装一个能复用LazyColumn内容的Composable,正确的写法应该是直接在函数内部调用传入的content作用域函数,而不是把它传给items():

@Composable
fun ItemCreator(content: LazyListScope.() -> Unit) {
    LazyColumn {
        // 直接执行传入的LazyListScope作用域内容
        content()
    }
}

如果你的需求是基于数据源生成列表项,应该把数据源作为参数传入,再配合items():

@Composable
fun <T> ItemCreator(itemsList: List<T>, itemContent: @Composable (T) -> Unit) {
    LazyColumn {
        items(itemsList) { item ->
            itemContent(item)
        }
    }
}

调用示例:

// 调用第一种封装方式
ItemCreator {
    items(10) { index ->
        Text("第${index+1}项")
    }
}

// 调用第二种基于数据源的方式
val dataList = listOf("条目1", "条目2", "条目3")
ItemCreator(itemsList = dataList) { item ->
    Text(item)
}

内容的提问来源于stack exchange,提问作者vibe_tribe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:03:11