android-jetpack-compose after click button我想禁用按钮一段时间并再次启用它

sycxhyv7  于 2023-05-15  发布在  Android
关注(0)|答案(2)|浏览(88)

就像标题说的,我需要在点击后禁用按钮一段时间,这样它就不会是可点击的,当这段时间到期后再次启用按钮,这样它就可以是可点击的。

Button(
      onClick = {},
      modifier = //maybe to add code here?
    ) {
        Text(text = "Click me")
      }

如果代码可以添加到修改器中就太好了,那就太好了!因为这样它就可以被重用,不仅用于Button,也用于其他组件。

w8rqjzmb

w8rqjzmb1#

以下是使用delay实现此目的的一种方法:

var enabled by remember { mutableStateOf(true) }

    LaunchedEffect(enabled) {
        if (enabled) return@LaunchedEffect
        else delay(1000L)
        enabled = true
    }

    Button(
        onClick = { enabled = false }, 
        enabled = enabled
    ) {
        Text(text = "Click Me")
    }
bvhaajcl

bvhaajcl2#

val scope = rememberCoroutineScope()

var clickEnabled by remember { mutableStateOf(true) }

Button(modifier = Modifier.clickable(enabled = clickEnabled) {
                            clickEnabled = false
                            scope.launch {
                                delay(1000)
                                clickEnabled = true
                            }
                        })

相关问题