Колір фону CardView завжди білий


139

Я використовую RecyclerView з GridLayoutManager, і кожен елемент у мене є CardView.

На жаль, CardView тут, схоже, не змінює колір тла. Я спробував і в компоновці, і в програмному плані, але я не намагався нічого, схоже, спрацювати.

Я досить довго борюся. Я вдячний, якщо хтось міг би допомогти мені в цьому питанні.


4
card_view: cardBackgroundColor = "@ android: color / white" перевірте це.
santosh kumar

Потрібен код, щоб допомогти
Манза

Це дуже довгий код, отже, я його не публікував. Дозвольте мені опублікувати якийсь відповідний код.
Ішаан

Під час перегляду коду для публікації тут я виявив, що десь я поставив cardView.setCardBackgroundColor (Color.WHITE); що було причиною того, що він завжди був білим.
Ішаан

Відповіді:


349

Якщо ви хочете змінити колір тла картки, скористайтеся:

app:cardBackgroundColor="@somecolor"

подобається це:

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardBackgroundColor="@color/white">

</android.support.v7.widget.CardView>

Редагувати: Як вказує @imposible, вам потрібно включити

xmlns:app="http://schemas.android.com/apk/res-auto"

у вашому кореневому тезі XML, щоб зробити цей фрагмент функції


2
Дякую за вашу відповідь, цінуй це.
Ішаан

1
Це працювало для мене, коли я використовував це так ---> card_view: cardBackgroundColor = "@ color / white"
Хіманшу Морі

2
У цьому файлі макета включіть xmlns: app = " schemas.android.com/apk/res-auto ".
неможливо

1
Я використовую android.support.v7.widget.CardView. Використання app:cardBackgroundColor="@somecolor"працювало для мене, але card_view:cardBackgroundColor="@somecolor"не стало.
Zamrony P. Juhara

36

Ви можете це зробити або в XML, або програмно:

У XML:

card_view:cardBackgroundColor="@android:color/red"

Програмно:

cardView.setCardBackgroundColor(Color.RED);

1
Дякую за вашу відповідь, я це вирішив. Я змінив колір програмно десь, який не міг помітити.
Ішаан

5

Kotlin для XML

app:cardBackgroundColor="@android:color/red"

код

cardName.setCardBackgroundColor(ContextCompat.getColor(this, R.color.colorGray))


1
Дякую. Я раніше використовував card.setCardBackgroundColor (R.color.bla), що призводить до дуже дивних результатів. Отримання кольору за допомогою ContextCompat зробило для мене трюк.
chrjs

3

XML-код

<android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view_top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardCornerRadius="5dp"
        app:contentPadding="25dp"
        app:cardBackgroundColor="#e4bfef"
        app:cardElevation="4dp"
        app:cardMaxElevation="6dp" />

З коду

CardView card = findViewById(R.id.card_view_top);
card.setCardBackgroundColor(Color.parseColor("#E6E6E6"));

-2

app:cardBackgroundColor="#488747"

використовуйте це у поданні картки, і ви можете змінити колір перегляду картки


-2

Можна використовувати

app:cardBackgroundColor="@color/red"

або

android:backgroundTint="@color/red"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.