Cardview阴影没有出现在棒棒糖设备中?

Din*_*T A 32 android android-layout android-cardview android-5.0-lollipop

我在我的Android应用程序中使用cardview.然而阴影没有显示出来.这是xml布局

默认选项菜单阴影也未显示.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ECEDF0"
    android:orientation="vertical" >

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:clipChildren="false"
        card_view:cardBackgroundColor="@color/white"
        card_view:cardCornerRadius="4dp"
        card_view:cardElevation="14dp"
        card_view:cardUseCompatPadding="true" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:text="Google Play" />
    </android.support.v7.widget.CardView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

请参阅附件

Ram*_*tra 91

在再次浏览文档后,我终于找到了解决方案.

只需添加card_view:cardUseCompatPadding="true"到您的CardView阴影将出现在Lollipop设备上.

发生的事情是,在CardView棒棒糖前和棒棒糖设备上采用不同大小的内容区域.因此,在棒棒糖设备中,阴影实际上被卡覆盖,因此它不可见.通过添加此属性,内容区域在所有设备上保持不变,阴影变为可见.

我的xml代码如下:

<android.support.v7.widget.CardView
    android:id="@+id/media_card_view"
    android:layout_width="match_parent"
    android:layout_height="130dp"
    card_view:cardBackgroundColor="@android:color/white"
    card_view:cardElevation="2sp"
    card_view:cardUseCompatPadding="true"
    >
...
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)


And*_*ICE 15

如前所述,CardView没有在Android L中显示Shadow, 确保您正在使用绘制视图hardwareAccelerated = true

hardwareAccelerated = true 在此输入图像描述

hardwareAccelerated = false hardwareAccelerated CardView

有关详细信息,请参阅Android硬件加速


dev*_*ant 5

对于Lollipop及更高版本,您应该为卡添加一些边距:

<android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            />
Run Code Online (Sandbox Code Playgroud)

由于阴影位于实际视图之外