2016-09-18 6 views
2

CardViewの現在の背景色を取得する方法はありません。それは本当に参考になりますCardViewの現在の背景色を取得する方法がありません

cardView.getCardBackgroundColor(); 

:私はのような何かをしたいと思い

cardView.setCardBackgroundColor(color); 

のような背景を設定する方法があります。

+0

[ソースコード(https://android.googlesource.com/platform/frameworks/support/+/master/v7/cardview/src/android/support/v7/widget/CardView.java# 296)はその方法を正確に示しています。多分もっと新しいものかもしれません。サポートライブラリの最新バージョンを使用していることを確認してください。 - はい、比較的新しい(https://android.googlesource.com/platform/frameworks/support/+/e7c701f05b4f6afa2913c3743638d7b25b96df83%5E%21/v7/cardview/src/android/support/v7/widget/CardView)。 java)。ライブラリのバージョンを更新するだけです。 –

+0

@MikeM。 whaaatttを待つ? –

+0

実際には、 'ColorStateList'を返すので、' getDefaultColor() 'を呼び出して通常の背景色を取得してください。 –

答えて

0

これはgradleの問題でした。私は古いバージョンのCardViewを他のライブラリにバンドルして使用していました。行を追加して修正:

compile 'com.android.support:cardview-v7:24.2.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から取得しよう。

+0

申し訳ありませんが、それは下位APIバージョンでは醜いかもしれません。 –

+0

ええ、私は知っていますが、CardView APIがうまく機能していないためです。 –

+0

醜い人は受け入れられません、私は方法を見つけるでしょう。 –

4

それはgetCardBackgroundColor()方法が実際にCardViewに追加されているように見えるのではなく、最近のバージョンでは、これだけあなたのサポートライブラリのバージョンが最新であることを確認してください。

このメソッドは、単一のカラー値ではなくColorStateListを返します。 getDefaultColor()を呼び出すと、通常の背景色が得られます。

int backgroundColor = cardView.getCardBackgroundColor().getDefaultColor(); 
+0

お返事ありがとうございました。 –

関連する問題