我正在尝试迭代 List
个对象,对于我想要显示可组合卡片的每个对象。问题是你不能从 list.forEach{}
括号内调用 Composable 函数。
代码:
@Composable
fun Greeting(listy : List<SomethingForLater>) {
LazyColumn {
listy.forEach {
//error here
testCard(somethingForLater = it)
}
}
}
@Composable
fun testCard(somethingForLater: SomethingForLater){
val theme = MaterialTheme
Card(shape = theme.shapes.small,backgroundColor = theme.colors.secondary){
Column {
Row {
Text(
text = somethingForLater.task,
modifier = Modifier.padding(start = 5.dp,
top = 3.dp,bottom = 3.dp
),
fontSize = 18.sp,
fontWeight = FontWeight.Bold,
)
}
}
}
}
答案 0 :(得分:2)
items
中有 LazyColumn
参数
LazyColumn {
items(listy) { message ->
testCard(message)
}
}
或者您可以简单地将 LazyColumn
更改为 Column
答案 1 :(得分:2)
LazyColumn
不提供任何可组合的内容。因此,您必须将可组合函数包装在 items
参数中。
@Composable
fun Greetings(listy : List<SomethingForLater>) {
LazyColumn {
item(listy.size) {
listy.forEach { somethingForLater ->
TestCard(somethingForLater = somethingForLater)
}
}
}
}