如何禁用Material Chip组件的涟漪效果?
禁用Material Chip组件的涟漪效果
针对你遇到的app:rippleColor设置透明未生效的问题,提供以下几种可行方案:
方案1:设置rippleColor为null
将app:rippleColor="@android:color/transparent"替换为:
app:rippleColor="@null"
Material组件中,设置为@null会完全禁用涟漪绘制,比透明色更彻底。
方案2:通过样式覆盖触摸反馈
自定义无涟漪的Chip样式:
<style name="NoRippleChip" parent="Widget.MaterialComponents.Chip.Action"> <item name="android:foreground">@null</item> <item name="rippleColor">@null</item> </style>
给目标Chip应用该样式:
android:theme="@style/NoRippleChip"
方案3:代码层面强制禁用
如果XML配置仍不生效,可在代码中直接禁用触摸反馈:
Kotlin
filter_chip.setForeground(null) filter_chip.rippleColor = null
Java
filter_chip.setForeground(null); filter_chip.setRippleColor(null);
注:即便你设置了android:clickable="false"和android:focusable="false",部分场景下Material Chip仍会保留默认涟漪触发逻辑,上述方案可彻底解决问题。
内容的提问来源于stack exchange,提问作者Kurik9797
相关产品推荐
相关产品推荐

