【发布时间】:2022-11-24 02:10:39
【问题描述】:
请耐心等待我不知道如何正确表达我的问题,但我会尽力而为。
我把屏幕放在上面多个可组合项一起。
我为携带该行的可组合项提供了一个 onClick 函数;
@Composable
fun MenuGrid(
modifier: Modifier = Modifier,
onMenuCardClick: (Int) -> Unit = {},
) {
LazyHorizontalGrid(
rows = GridCells.Fixed(3),
contentPadding = PaddingValues(horizontal = 16.dp),
horizontalArrangement = Arrangement.spacedBy(8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
modifier = modifier
.height(200.dp)
) {
items(MenuData) { item ->
MenuCard(
drawable = item.drawable,
text = item.text,
modifier = Modifier
.height(56.dp)
.clickable { onMenuCardClick(item.drawable + item.text) }
)
}
}
}
就像我之前说的,我把多个可组合项在一起,形成上图。我安排了多个可组合项在可组合项中,我调用了MenuContentScreen;
@Composable
fun MenuContentScreen(modifier: Modifier = Modifier) {
Column(
modifier
.verticalScroll(rememberScrollState())
.padding(vertical = 16.dp)) {
MenuQuote()
MenuContentSection(title = R.string.favorite_collections) {
MenuGrid()
}
}
}
然后我在该屏幕 MenuScreen 的主要可组合项上引用/调用了 MenuContentScreen。 (在 NavHost 中定义的那个)
@Composable
fun MenuScreen() {
MenuContentScreen(Modifier.padding())
}
哪个是哪里问题是的,因为 onClick 函数是在另一个可组合项中定义的,所以我不能为 MenuScreen 使用 onClick 函数;
所以我的问题有没有办法可以将 MenuGrid 上的 onClick 函数链接到 MenuScreen,也许在 MenuScreen 上创建一个参数并将其分配给 MenuGrid 的 onClick 函数(我试过并得到val cannot be assigned), 或者任何东西。
我将不胜感激任何帮助。我一直在做这件事。请没有信息太小。
提前致谢。
【问题讨论】:
标签: kotlin android-jetpack-compose android-jetpack jetpack-compose-navigation