Android Material3中如何修改Card按下时的涟漪效果颜色?
修改Android Compose Material3 Card的按压涟漪颜色
要修改Material3 Card按下时的涟漪效果颜色,CardDefaults.cardColors()无法实现该需求,需要自定义涟漪指示器(Indication),具体实现方式如下:
方法1:通过clickable修饰符配置
直接给Card添加clickable修饰符,传入自定义的涟漪效果:
Card( colors = CardDefaults.cardColors(containerColor = Color.White), modifier = Modifier .clickable( interactionSource = remember { MutableInteractionSource() }, indication = rememberRipple(color = Color.Red) // 指定按压涟漪的颜色 ) { // 点击事件逻辑 } ) { Text(text = "自定义涟漪颜色的Card") }
方法2:利用Card自带的onClick参数配置
如果使用Card原生的onClick参数,需要同时指定interactionSource和indication:
val interactionSource = remember { MutableInteractionSource() } Card( colors = CardDefaults.cardColors(containerColor = Color.White), onClick = { /* 点击事件逻辑 */ }, interactionSource = interactionSource, indication = rememberRipple(color = Color.Blue) ) { Text(text = "通过Card参数设置涟漪颜色") }
额外配置
- 可通过
radius参数调整涟漪的扩散范围:rememberRipple(color = Color.Green, radius = 32.dp) - 建议结合主题颜色保持风格统一,比如使用主题主色并调整透明度:
rememberRipple(color = MaterialTheme.colorScheme.primary.copy(alpha = 0.3f))
内容的提问来源于stack exchange,提问作者tariqebadi
相关产品推荐
相关产品推荐

