Jetpack Compose调用LazyListScope.items传List报错找不到参数如何解决
Jetpack Compose LazyListScope.items 调用报错解决
该报错是Jetpack Compose Foundation组件版本迭代导致的API参数名变更问题:1.2.0版本之前,接收List类型参数的LazyListScope.items扩展方法的首个参数名为items,1.2.0及之后版本该参数名改为elements,这才会出现指定items参数名找不到、不指定参数名误匹配count重载的问题。
可通过以下两种方案解决:
- 方案1(推荐,全版本兼容):直接省略参数名调用,Kotlin会根据传入的List类型自动匹配对应重载,代码如下:
val messages: List<Message> = ... LazyColumn { items(messages) { message -> MessageCard(message) } }
- 方案2(指定参数名场景):根据你的Compose Foundation版本选用对应参数名:
- 1.1.x及更早版本:使用
items作为参数名 - 1.2.0及更新版本:使用
elements作为参数名
高版本示例代码:
val messages: List<Message> = ... LazyColumn { items(elements = messages) { message -> MessageCard(message) } } - 1.1.x及更早版本:使用
额外注意:如果修改后仍有报错,先检查项目内所有Compose相关依赖的版本是否统一,依赖版本冲突也会触发重载匹配异常。
内容的提问来源于stack exchange,提问作者Anm
相关产品推荐
相关产品推荐

