Цвет фона CardView всегда белый


139

Я использую RecyclerView с GridLayoutManager, и каждый элемент у меня как CardView.

К сожалению, здесь CardView не меняет цвет фона. Я пробовал макет и программно, но я пробовал ничего не работает.

Я уже довольно долго борюсь. Я ценю, если кто-нибудь может помочь мне с этой проблемой.


4
card_view: cardBackgroundColor = "@ android: color / white" проверьте это.
сантош кумар

Нужен код, чтобы помочь
Манза

Это очень длинный код, поэтому я его не публиковал. Позвольте мне опубликовать соответствующий код.
Ishaan

Пока я просматривал код для публикации здесь, я обнаружил, что где-то я поместил cardView.setCardBackgroundColor (Color.WHITE); по этой причине он всегда был белым.
Ishaan

Ответы:


350

Если вы хотите изменить цвет фона карты, используйте:

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
Спасибо за ответ, ценю.
Ishaan

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"не помогло.
Замрони П.

36

Вы можете сделать это как в XML, так и программно:

В XML:

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

Программный:

cardView.setCardBackgroundColor(Color.RED);

1
Спасибо за ответ, решил. Я где-то программно изменил цвет, чего не мог заметить.
Ishaan

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.