Android支持CardView问题与阴影

时间:2016-02-16 07:02:29

标签: android android-cardview

我正在使用android.support.v7.widget.CardView库并面临一些问题。

在这里,我只使用一些余量来堆叠3 CardViews。在Android L上运行它不会看到/绘制前2张牌的顶部阴影。Can't see top shadows

这是API级别16绘制卡片。

enter image description here

是否有可能始终绘制顶部阴影?

感谢。

编辑: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">

2 个答案:

答案 0 :(得分:1)

根据我的研究,我相信GPU绘图更新以及高程会导致这种情况。由于卡片在相同的高度水平上具有相同的背景,因此平台将它们混合在一起。这就是为什么旧版本绘制一些边框,因为它不支持高程。

我的修复是为底部卡添加0dp高程,然后为中间添加1dp,顶部卡保持默认高度为2dp。现在可以看到轻微的边框。

答案 1 :(得分: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可以做到。