如何去除 MaterialCardView 的涟漪效应?

How to remove ripple effect from MaterialCardVew?

如何禁用 MaterialCardView 的触摸波纹效果? 将 clickable 属性设置为 false 或使用 foregroundbackground 属性无效。

我正在使用 material 支持库版本 1.1.0-alpha02.

只有 rippleColorstyleable:

<com.google.android.material.card.MaterialCardView
    style="@style/Widget.MaterialComponents.CardView"
    app:rippleColor="@android:color/transparent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

</com.google.android.material.card.MaterialCardView>

注意:它不会消除 <androidx.cardview.widget.CardView 的连锁反应。

你可以像那样使用 CSS:

.mdc-card__primary-action.card__primary-action.mdc-ripple-upgraded {
  &:hover,
  &:focus,
  &:active {
    &.mdc-card__primary-action::before,
    &.mdc-card__primary-action::after {
      background-color: rgba(255, 255, 255, 0) !important;
      opacity: 0 !important;
    }
  }
}

只需在xml中使用此属性:
app:rippleColor="@android:color/transparent"

或在 Kotlin 中以编程方式:
cardView.rippleColor = ColorStateList.valueOf(Color.TRANSPARENT)