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

139

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

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

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

Ishaan
источник
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);
Nongthonbam Tonthoi
источник
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"));
yoAlex5
источник
-2

app:cardBackgroundColor="#488747"

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

BlackBlind567
источник
-2

Ты можешь использовать

app:cardBackgroundColor="@color/red"

или

android:backgroundTint="@color/red"
Рания
источник