没有办法获取CardView的当前背景颜色。有一种设置背景的方法,如
cardView.setCardBackgroundColor(color);
我想要像:
cardView.getCardBackgroundColor();
这将非常有用。
答案 0 :(得分:5)
看起来getCardBackgroundColor()
方法确实已添加到CardView
,但在最新版本中,所以只需确保您的支持库版本是最新的。
请注意,此方法返回ColorStateList
而不是单个颜色值。在其上调用getDefaultColor()
将为您提供正常的背景颜色。
int backgroundColor = cardView.getCardBackgroundColor().getDefaultColor();
答案 1 :(得分:0)
您应该在CardView内设置并获取父布局的颜色。
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible">
</RelativeLayout>
在这种情况下,尝试设置并从RelativeLayout获取。
答案 2 :(得分:0)
这是gradle的一个问题。我使用的是与其他库捆绑在一起的旧版CardView。通过添加以下行修复:
compile 'com.android.support:cardview-v7:24.2.1'