小编Hoi*_*ear的帖子

Android Compose 为什么当父级可点击时 Checkbox 需要 onCheckChanged?

我试图有一个带有一些尾随文本的复选框。这个想法是,无论您选择复选框本身还是文本,值都会被切换。为了代码的简洁性,我已经在可组合项中完成了所有操作。

选择文本时它会按预期工作。但是当我专门按下该复选框时,什么也没有发生。我看到按下复选框会产生连锁反应,但它显然忽略了该行的可点击功能并点击onCheckChange = {}

我对可组合作用域并不完全熟悉,所以我认为这可能是由于它Row()是一个内联函数,所以我尝试对 the 应用相同的修饰符,Surface但这也不起作用。

从两个地点打同样的电话没什么大不了的,我只是想知道为什么。

@Composable
fun CheckboxInRowWithText() {
    var checkedState by remember { mutableStateOf(false) }
    Surface {
        Row(
            modifier = Modifier
                .fillMaxWidth()
                .clickable {
                    checkedState = !checkedState
                },
            verticalAlignment = Alignment.CenterVertically) {
            Checkbox(checked = checkedState, onCheckedChange = {} )

            Text(text = "Clicking this Row will toggle checkbox")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-gesture

2
推荐指数
1
解决办法
2083
查看次数