没有材料卡片视图的涟漪效果。

23

新的MaterialCardView没有水波纹效果吗?

我曾经使用过带有android:clickable="true"android:foreground="?android:attr/selectableItemBackground"属性的CardView,这个功能很好用,但是在新的MaterialCardView上没有任何水波纹效果。

其他的View都能够正常工作,但是我想要我的卡片可以被点击(并显示水波纹效果)。


1
你在卡片上添加了点击监听器吗? - Zun
@ZUNJAE 我尝试过带有和不带有点击监听器的方式,但都无法正常工作(但无论如何,这应该没有任何区别)。 - hardysim
1
我无法使MaterialCardView波纹效果生效,所以把波纹效果设置到它的内容即constraintlayout上。 - M.kazem Akhgary
3个回答

19

这是一个关于MaterialCardView的 bug。它在创建后覆盖了前景。我已经提交了一个 bug。应该修复这个问题,以便在卡片可点击的情况下无需设置前景即可显示涟漪效果。

如果您不能等待修复,可以使用来自支持库的 CardView,或更改代码以在 CardView 被膨胀后设置前景 drawable,或者我们将非常乐意接受您的拉取请求!相关代码:https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/card/MaterialCardView.java。它可能会使用https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/ripple/RippleUtils.java和 SDK >= 21 的 RippleDrawable。


4
好的,你能提供一个错误报告链接吗,这样我们就可以跟踪它了吗? - hardysim
1
@cameron-ketcham,欢迎提供一个错误报告链接。 - Michel Feinstein
@mFeinstein 那个 bug 只是我们内部跟踪的一个问题。现在已经修复了,但还没有发布:https://github.com/material-components/material-components-android/commit/09673a5de798241860e5cecd051e0caa19397ca0 - Cameron Ketcham
2
仓库的评论(2018年10月29日):“我们将在本周发布1.1.0-alpha01版本,其中将包括此功能。” - hardysim
我正在使用“1.2.0-alpha04”,它运行良好。非常感谢! - Abner Escócio
显示剩余5条评论

10

在我的情况下,只需在XML文件中添加android:clickable="true"android:focusable="true"app:rippleColor="#cfd8dc"就可以使其正常工作。

<com.google.android.material.card.MaterialCardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    app:rippleColor="#cfd8dc">

-3

水波纹效果现在可以工作了,但只有在CardView上添加OnClickListener时才能生效


5
你正在使用哪个版本(现在是什么)? - hardysim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接