以下代码适用于 Jetbrains Desktop Compose。它显示了一张带有按钮的卡片,现在如果您单击该卡片,“单击的卡片”将回显到控制台。如果您单击该按钮,它将回显“已单击按钮”
但是,我正在寻找一种方法让卡检测按钮的点击。我想在不更改按钮的情况下执行此操作,这样按钮就不需要知道它所在的卡。我希望这样做,以便卡片知道其表面上的某些内容已被处理,例如显示不同颜色的边框。
期望的结果是,当您单击按钮时,日志将回显“单击卡”和“单击按钮”行。我明白为什么mouseClickable不被调用,按钮声明单击已处理。所以我预计我需要使用另一种鼠标方法而不是mouseClickable. 但我一生都无法弄清楚我应该使用什么。
@OptIn(ExperimentalComposeUiApi::class, androidx.compose.foundation.ExperimentalDesktopApi::class)
@Composable
fun example() {
Card(
modifier = Modifier
.width(150.dp).height(64.dp)
.mouseClickable { println("Clicked card") }
) {
Column {
Button({ println("Clicked button")}) { Text("Click me") }
}
}
}
Run Code Online (Sandbox Code Playgroud)