Are there no ripples on the new
android:foreground="?android:attr/selectableItemBackground" which worked fine but with the new
MaterialCardView there are no ripples at all 😰.
Views etc. keep working but I want my card to be clickable (with ripple as feedback).
This is a bug with
MaterialCardView. It’s overriding the foreground after it’s created. I’ve filled a bug. It should be fixed to show a ripple if the card is clickable without needing to set the foreground.
If you can’t wait for a fix you could use
CardView from the support lib, or you could change your code to set the foreground drawable after the CardView has been inflated, or we would gladly accept a pull request! Relevant code at: 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 and a RippleDrawable for SDK >= 21.
In my case, It worked after adding
XML file. Hope it will help to future 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">
Ripple effect is working now, but only if you add an OnClickListener on the CardView