【发布时间】:2021-04-05 11:21:09
【问题描述】:
我一直试图在 Android Jetpack Compose 的动态列表中显示 onClick 中的 onClick 中的 AlertDialog。
我收到编译时错误@Composable 调用只能在 @Composable 函数的上下文中发生。
下面是我的代码 sn-p :
@Preview(showBackground = true)
@Composable
fun prepareCard(card: Card) {
MyApplicationTheme() {
androidx.compose.material.Card() {
Column(Modifier.clickable {
Log.d("TAG", "clicked : " + card.name)
val showDialog = mutableStateOf(true)
if (showDialog.value) {
alert(card)
}
...
}
}
}
我已经制作了alert() 可组合函数,它可以从上面的代码中调用
@Composable
fun alert(card : Card) {
AlertDialog(
title = {
Text("")
},
text = {
Text(text = card.name)
}, onDismissRequest = {
},
confirmButton = {},
dismissButton = {}
)
}
如图所示,我收到编译时错误
请帮忙解决这个问题
注意:
我尝试了以下修改,它解决了编译时错误,但在点击Card时仍然没有显示AlertDialog
@Preview(showBackground = true)
@Composable
fun prepareCard(card: Card) {
MyApplicationTheme() {
val showDialog = mutableStateOf(false)
if (showDialog.value) {
alert(card)
}
androidx.compose.material.Card() {
Column(Modifier.clickable {
Log.d("kushal", "clicked : " + card.name)
showDialog.value = true
}) {
...
}
}
【问题讨论】:
-
点击卡片会发生什么?
-
什么都没有发生,它不显示
AlertDialog
标签: android kotlin android-jetpack android-jetpack-compose