提问者:小点点

在组合中禁用onClick后的视图


我想禁用箭头图像后,它被点击,并有选项使它再次启用后,另一个事件。

Image(
                painterResource(R.drawable.arrow_back_btn),
                contentDescription = "back",
                modifier = Modifier
                    .padding(start = 16.dp, top = 16.dp)
                    .clickable(onClick = onArrowClick)
                    .layoutId(R.id.arrowBackBtn),
                onArrowClick = {enabled = false}

            )

最后一行是我临时写的-onArrowClick被识别,但'enabled'不被识别


共1个答案

匿名用户

使用内部状态来定义组合文件是否可单击。当enabledtrue时,图像可单击;当false时,图像不可单击。

类似于:

var enabled  by rememberSaveable { mutableStateOf(true) }

Image(
    painterResource(R.drawable.ic_add_24px),
    contentDescription = "back",
    modifier = Modifier
        .padding(start = 16.dp, top = 16.dp)
        .clickable(
            enabled = enabled,
            onClick = { enabled = false } 
        )
        .layoutId("arrow")
)

要再次启用,只需设置enabled=true。例如:

Button(onClick = {enabled = true}){
    Text("Enable again")
}