2016-02-16 2 views
1

Я пользуюсь библиотекой android.support.v7.widget.CardView и сталкиваюсь с некоторыми проблемами.Поддержка Android CardView с тенями

Здесь я просто уложил 3 CardViews с использованием некоторого запаса. Запустив его на Android L, верхние тени для двух верхних карт не отображаются/рисуются. Can't see top shadows

Ниже представлен рисунок 16 уровня API.

enter image description here

Возможно ли получить верхнюю тень всегда рисуется?

Спасибо.

EDIT: XML-код

<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="16dp" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="8dp" 
    app:cardBackgroundColor="@color/white" 
    app:cardCornerRadius="@dimen/card_view_corner_radius" 
    app:cardUseCompatPadding="true" /> 

<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="16dp" 
    android:layout_marginLeft="4dp" 
    android:layout_marginRight="4dp" 
    android:layout_marginTop="4dp" 
    app:cardBackgroundColor="@color/white" 
    app:cardCornerRadius="@dimen/card_view_corner_radius" 
    app:cardUseCompatPadding="true" /> 

<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="8dp" 
    app:cardBackgroundColor="@color/white" 
    app:cardCornerRadius="@dimen/card_view_corner_radius" 
    app:cardPreventCornerOverlap="true" 
    app:cardUseCompatPadding="true"> 
+0

Можете ли вы прикрепить код «CardView» в xml. – Mohamed

ответ

1

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

Мое решение состояло в том, чтобы добавить 0dp-отметку для нижней карты, затем 1dp для средней и верхняя карта сохраняет значение по умолчанию, равное 2dp. Теперь есть небольшая граница.

0

Попробуйте это:

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="8dp" 
    card_view:cardBackgroundColor="@color/white" 
    card_view:cardCornerRadius="@dimen/card_view_corner_radius" 
    card_view:cardElevation="4dp" /> 

Может cardElevation сделать это.

+0

Я не хочу увеличивать высоту, потому что она влияет на все тени, так как вы можете видеть, что нижняя часть стопки карты правильно рисует верхнюю тень, но карты выше этого не делают. – Niko

+0

Возможно, потому, что цвет тени не отображается на белом фоне. – Mohamed

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