android 为什么指示对按钮或图标不起作用?

t1qtbnec  于 2023-01-15  发布在  Android
关注(0)|答案(2)|浏览(127)

作为solved here,我通过将indication设置为null来禁用点击 Flink 。
然而,这是不工作的按钮或图标?!

dy1byipe

dy1byipe1#

Button中,你不能在clickable修饰符中使用indication=null,因为它是由使用indication = rememberRipple()的组件内部定义的。这将使用RippleTheme提供的值创建并记住一个Ripple
您可以提供自定义的**LocalRippleTheme**来覆盖默认行为。
比如:

CompositionLocalProvider(LocalRippleTheme provides NoRippleTheme) {
    Button(
        onClick = { /*...*/ },
    ) {
       //...
    }
}

与:

private object NoRippleTheme : RippleTheme {
    @Composable
    override fun defaultColor() = Color.Unspecified

    @Composable
    override fun rippleAlpha(): RippleAlpha = RippleAlpha(0.0f,0.0f,0.0f,0.0f)
}
mspsb9vt

mspsb9vt2#

您可以使用

Modifier.pointerInput(Unit) {
    detectTapGestures(
        onPress = { /* Called when the gesture starts */ },
        onDoubleTap = { /* Called on Double Tap */ },
        onLongPress = { /* Called on Long Press */ },
        onTap = { /* Called on Tap */ }
    )
}

而不是onClick()。单击按钮时不会显示波浪效果。

相关问题