一、封装为Modifier(通用)
fun Modifier.clickableNoRipple(
onClick: () -> Unit
) = composed {
this.then(
Modifier.clickable(
onClick = onClick,
interactionSource = remember { MutableInteractionSource() },
indication = null
)
)
}
二、封装为主题(针对自带点击功能组件如Button)
@Composable
fun AppTheme(
content: @Composable () -> Unit
) {
CompositionLocalProvider(
LocalRippleTheme provides NoRippleTheme
) {
content()
}
}
object NoRippleTheme : RippleTheme {
@Composable
override fun defaultColor(): Color {
return Color.Transparent
}
@Composable
override fun rippleAlpha(): RippleAlpha {
return RippleAlpha(0f, 0f, 0f, 0f)
}
}