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

Jetpack Compose:LazyHorizontalGrid调用Text报错的原因及修复方案

问题解答:LazyHorizontalGrid中无法直接使用Text组件的原因及修复方案

报错原因

LazyHorizontalGrid的content参数属于LazyGridScope作用域,这个作用域不是@Composable函数上下文。你直接在for循环里调用Text()(@Composable函数),相当于在非Composable环境中调用Composable函数,违反了Jetpack Compose的调用规则,因此触发该错误。

修复方案

Lazy系列组件(包括LazyHorizontalGrid)提供了专门的API来管理列表项,必须使用items或item方法包裹Composable内容,这些方法内部会正确传递Composable上下文。

修复后的代码示例:

@Composable
fun Greeting(modifier: Modifier = Modifier) {
    LazyHorizontalGrid(
        rows = GridCells.Fixed(2)
    ) {
        // 用items方法遍历集合生成列表项
        items(listOf("a", "b", "c", "d", "e")) { item ->
            Text(text = item)
        }
    }
}

如果需要单独添加单个列表项,也可以使用item方法:

@Composable
fun Greeting(modifier: Modifier = Modifier) {
    LazyHorizontalGrid(
        rows = GridCells.Fixed(2)
    ) {
        item { Text(text = "a") }
        item { Text(text = "b") }
        // 依次添加其他项
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:32:32