小编use*_*569的帖子

Jetpack Compose:如何禁用儿童手势检测

是否有一个内置函数Modifier可以禁用其子级的任何手势检测/指针输入交互?

例如

@Composable
fun Foo() {
    Box(modifier = Modifier.gesturesEnabled(enabled = false)) {
        BasicText(text = "Hello", modifier = Modifier.clickable { // clickable is not enabled
            // ...
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法来推出我自己的(非常简单)实现CompositionLocal

val LocalGesturesEnabled = compositionLocalOf { mutableStateOf(true) }

fun Modifier.myClickable(onClick: () -> Unit, enabled: Boolean = true) = composed {
    clickable(enabled = enabled && LocalGesturesEnabled.current.value, onClick)
}
Run Code Online (Sandbox Code Playgroud)

但它不适用于第三方可组合项或更复杂的可组合项(例如LazyList.

gesture android-jetpack-compose

19
推荐指数
1
解决办法
9529
查看次数

标签 统计

android-jetpack-compose ×1

gesture ×1