Based on a Styling Android
blog post:
Another way that we can confine the bounds of a ripple animation is to
actually define a shape drawable as a child
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/white" />
<stroke
android:color="@color/card_set_bg_color"
android:width="1dp" />
</shape>
</item>
</ripple>
Here the <solid>
in <shape>
is needed for the ripple to render. If set to transparent
or omitted, the ripple doesn't render. The ripple needs a solid background to render on. TextView
s don't have a background color so we need to specify a <solid>
.