为什么“指示”不适用于按钮或图标?

Ral*_*kum 3 android android-jetpack android-jetpack-compose android-compose-button android-jetpack-compose-button

正如此处解决的那样indication,我通过将 设为来禁用水龙头闪烁null

但是,这不适用于按钮或图标?!

Gab*_*tti 8

在 中,Button您不能使用indication=nullinclickable修饰符,因为它是由使用 的组件在内部定义的indication = rememberRipple()。这将创建并记住Ripple由 提供的使用值RippleTheme

您可以提供自定义LocalRippleTheme来覆盖默认行为。

就像是:

CompositionLocalProvider(LocalRippleTheme provides NoRippleTheme) {
    Button(
        onClick = { /*...*/ },
    ) {
       //...
    }
}
Run Code Online (Sandbox Code Playgroud)

和:

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

    @Composable
    override fun rippleAlpha(): RippleAlpha = RippleAlpha(0.0f,0.0f,0.0f,0.0f)
}
Run Code Online (Sandbox Code Playgroud)