首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LazyColumn内部LazyColumn

LazyColumn内部LazyColumn
EN

Stack Overflow用户
提问于 2022-04-24 20:28:13
回答 1查看 921关注 0票数 0

我试图使用LazyColumn和下面的代码创建和列出子列表

代码语言:javascript
复制
DropdownMenu(
    expanded = expandedDomain,
    onDismissRequest = { expandedDomain = false },
) {
    LazyColumn {
        items(1) {
            Checkbox(checked = false /*checkedState.value*/,
                onCheckedChange = {})
            Text(text = "$domainResponse.domains[0].name")
        }
        LazyColumn {
            items(domainResponse.domains[0].pwas) { pwas ->
                Checkbox(checked = false /*checkedState.value*/,
                    onCheckedChange = {})
                Text(text = "$pwas")
            }
        }
    }
}

错误:

代码语言:javascript
复制
@Composable invocations can only happen from the context of a @Composable function
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 04:36:31

让我试着解释一下你应该改变什么。

1.为什么会出现错误?

@Composable invocations can only happen from the context of a @Composable function

如果我们查看LazyColumn代码,就可以找到content: LazyListScope.() -> Unit作为内容参数数据类型。

这表明上下文没有可组合的上下文。

相反,像Column/Row这样的可组合材料将分别具有content: @Composable ColumnScope.() -> Unit/content: @Composable RowScope.() -> Unit

@Composable显示content有一个可组合的上下文。

2.如何解决?

根据我在代码中看到的,您不需要在另一个LazyColumn中使用一个LazyColumn。您需要一个LazyColumn,其中包含来自不同数据源的多个项。

你可以这样修改你的代码,

代码语言:javascript
复制
LazyColumn {
    item {
        Checkbox(checked = false /*checkedState.value*/,
            onCheckedChange = {})
        Text(text = "$domainResponse.domains[0].name")
    }
    items(domainResponse.domains[0].pwas) { pwas ->
        Checkbox(checked = false /*checkedState.value*/,
            onCheckedChange = {})
        Text(text = "$pwas")
    }
    // You can have multiple lists in a single LazyColumn
    items(list2Items) { item ->
        Text(text = "$item")
    }
}

3. itemitems

如果您有一个相同的项目,则使用item而不是items(1),但这将更加清楚。

P.S.:

LazyColumn使用具有可组合上下文的itemContentitemitems。因此,我们可以在其中添加可组合性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71992095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档