2014-09-28 5 views
4

В документации написано, что BackgroundColor CardView можно установить в XML с помощью card_view:cardBackgroundColor. Однако я не могу найти соответствующий метод для динамического изменения фона.Динамическое изменение BackgroundColor CardView

Использование mCardView.setBackgroundColor(Color.argb(75, 102,80,67)); приведет к тому, что CardView потеряет округленный угол и тень.

ответ

6

При условии, что цвет фона для дочернего класса карты будет оставлять проложенные части в случае, если вид карты имеет любой цвет без него, и это не очень хороший подход.

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

В конструктор адаптеров Viewholder класс

mCardView = (CardView) itemView.findViewById(R.id.card_view); 

В методе onBindViewHolder класса адаптера:

holder.mCardView.setCardBackgroundColor(Color.GREEN); // will change the background color of the card view to green 

Где держатель является объектом вашего класса viewholder.

1

Я получил его на работу красиво, установив фон ребенка в CardView в:

<android.support.v7.widget.CardView 
     android:id="@+id/card_view" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
     <LinearLayout 
      android:orientation="vertical" 
      android:id="@+id/card_layout" 
      android:layout_width="match_parent" 
      android:layout_height="72dp"/> 
    </android.support.v7.widget.CardView> 

Тогда

View cardLayout = mCardView.findViewById(R.id.card_layout); 
    cardLayout.setBackgroundColor(Color.GREEN); 
+0

благодарит за работу. – paradite

+2

Он работает не так, как ожидалось, если у карты есть cardCornerRadius. Все еще ищет лучшее решение. – manutudescends

+0

@manutudescends вы уверены? он работает для меня, и я использовал 'card_view: cardCornerRadius =" 2dp "в моем xml – paradite

-2

Там будет API в следующем выпуске. Пока что ваш единственный вариант - использовать XML.

+0

Есть ли источник для этого? – InsanityOnABun

+0

Пожалуйста, добавьте это решение, когда API будет выпущен. – dasar

Смежные вопросы