You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中如何禁用IconButton点击时的波纹效果

如何禁用Jetpack Compose中IconButton的默认点击波纹效果

有两种常用方法可以实现这个需求,你可以根据对交互反馈的需求选择:

方法一:完全禁用所有交互相关视觉反馈

通过创建空的MutableInteractionSource,让IconButton无法感知交互状态,从而彻底移除波纹及其他交互反馈:

val noRippleInteractionSource = remember { MutableInteractionSource() }

IconButton(
    onClick = {},
    interactionSource = noRippleInteractionSource,
    // 显式指定内容颜色,避免无交互源导致的颜色异常
    contentColor = MaterialTheme.colorScheme.onSurface
) {
    Icon(Icons.Default.Favorite, contentDescription = "示例图标")
}

方法二:仅禁用波纹,保留其他交互反馈

如果只想去掉波纹效果,但保留按压时的颜色变化等其他交互反馈,可根据使用的Compose版本设置ripple参数:

Material 2 示例

IconButton(
    onClick = {},
    ripple = null
) {
    Icon(Icons.Default.Favorite, contentDescription = "示例图标")
}

Material 3 示例

IconButton(
    onClick = {},
    ripple = RippleThemeDefaults.noRipple()
) {
    Icon(Icons.Default.Favorite, contentDescription = "示例图标")
}

内容的提问来源于stack exchange,提问作者Kawan MC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:04:59