如何禁用Material Chip点击效果?API 28以下版本适配方法
禁用Material Chip点击效果(兼容API28以下)
你在API28+通过设置outlineSpotShadowColor为透明来禁用点击阴影的思路是对的,但API28及以下没有这个属性,你可以通过以下两种方式处理:
方案1:直接禁用交互(推荐)
如果你的Chip不需要响应点击事件,直接关闭可点击和焦点状态,这是最简洁的兼容方案,所有API版本通用:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { chip.outlineSpotShadowColor = binding.root.context.resources.getColor(android.R.color.transparent) } else { chip.isClickable = false chip.isFocusable = false }
方案2:保留交互但移除视觉反馈
如果必须保留Chip的可点击能力(比如要处理点击逻辑但不想显示按压效果),可以移除默认的状态动画:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { chip.outlineSpotShadowColor = binding.root.context.resources.getColor(android.R.color.transparent) } else { chip.stateListAnimator = null }
也可以通过XML布局提前配置,避免代码里的版本判断:
<com.google.android.material.chip.Chip ... android:clickable="false" android:focusable="false" android:stateListAnimator="@null" />
内容的提问来源于stack exchange,提问作者Nickaleush
相关产品推荐
相关产品推荐

