Compose 中的 IndicationIndication反馈视觉效果1. 一句话理解Indication 是 Compose 中专门用来处理“点击反馈视觉效果”的机制。当你点击一个按钮时那种“波纹扩散Ripple”或者“背景变暗”的视觉动效在代码层面就是由 Indication 控制的。2. 核心作用交互确认告诉用户“你确实点到我了”。状态表现区分“按下Pressed”、“聚焦Focused”和“松开”等状态。3. 实战如何实现一个带点击反馈的组件在 Compose 中最常用的 Indication 实现就是 Ripple水波纹。场景 A使用系统默认波纹最简单如果你直接使用 Modifier.clickable系统会自动帮你处理 Indication。Box(modifierModifier.size(100.dp).background(Color.LightGray).clickable{/* 点击逻辑 */}// 默认自带水波纹)场景 B自定义波纹颜色或边界如果你觉得默认波纹不好看可以手动配置。valinteractionSourceremember{MutableInteractionSource()}Box(modifierModifier.size(100.dp).clickable(interactionSourceinteractionSource,// 使用 rememberRipple 自定义颜色和半径indicationrememberRipple(colorColor.Red,boundedtrue// true: 波纹限制在圆角内; false: 波纹会扩散出边界),onClick{println(Clicked!)}))4. 进阶如何彻底去掉点击效果在你之前的代码中为了实现自定义的“遮罩层”反馈我们需要关掉系统默认的 Indication。Box(modifierModifier.clickable(interactionSourceremember{MutableInteractionSource()},indicationnull,// 设置为 null点击时就不会有任何自带的波纹onClick{/* 执行逻辑 */}))5. 常见问题 (FAQ)Q: 为什么我的波纹是方形的我的组件是圆角的A: 必须先写 .clip(RoundedCornerShape)再写 .clickable。或者在 indication 参数中使用 rememberRipple 配合正确的 shape。Q: 为什么我设置了 indication 但没反应A: 确保你传入了 interactionSource。Indication 依赖这个“源”来监听你的手指按下和抬起。6. 总结术语形象理解InteractionSource传感器负责收集“手指按下、抬起”的信号。Indication放映机负责根据信号把“波纹、变色”画在屏幕上。