MaterialCardView 没有波纹

No ripples for MaterialCardView

新的MaterialCardView没有涟漪吗?

我将 CardViewandroid:clickable="true"android:foreground="?android:attr/selectableItemBackground" 一起使用,效果很好,但对于新的 MaterialCardView,根本没有涟漪。

其他 Views 等继续工作,但我希望我的 card 可以点击(以涟漪作为反馈)。

这是 MaterialCardView 的错误。它在创建后覆盖前景。我已经填补了一个错误。如果卡片无需设置前景即可点击,应该会显示波纹。

如果您等不及修复,可以使用支持库中的 CardView,或者您可以更改代码以在 CardView 膨胀后设置前景可绘制对象,或者我们很乐意接受拉取请求!相关代码位于:https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/card/MaterialCardView.java. It can probably use https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/ripple/RippleUtils.java 和一个 RippleDrawable for SDK >= 21.

波纹效果现在起作用,但前提是您在 CardView 上添加 OnClickListener

在我的例子中,在 XML 文件中添加 android:clickable="true"card_view:rippleColor="#cfd8dc" 后它起作用了。希望对以后的SO有所帮助。

<com.google.android.material.card.MaterialCardView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
card_view:cardElevation="2dp"
card_view:rippleColor="#cfd8dc"
android:clickable="true"
card_view:cardCornerRadius="5dp"
card_view:cardUseCompatPadding="true"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">