CardView内部的CardView没有阴影

3

我有一个嵌套在另一个CardView之内的CardView,但是CardView周围没有阴影。 有任何想法吗?

        <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
            card_view:cardBackgroundColor="@color/WHITE_COLOR"
            card_view:cardCornerRadius="20dp"
            card_view:cardElevation="3dp"
            card_view:cardPreventCornerOverlap="false"
            card_view:contentPadding="0dp">

            <android.support.v7.widget.CardView
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:layout_centerInParent="true"
                card_view:cardBackgroundColor="@color/RED_COLOR"
                card_view:cardCornerRadius="20dp"
                card_view:cardElevation="6dp"
                card_view:cardPreventCornerOverlap="false"
                card_view:contentPadding="0dp">


            </android.support.v7.widget.CardView>

        </android.support.v7.widget.CardView>

1
请附上输出的屏幕截图。 - Om Komawar
你尝试过将内部的 CardView 放入布局中吗?例如:[CardView {LinearLayout (CardView)}] - Endzeit
3个回答

7
我遇到了完全相同的问题。
card_view:cardUseCompatPadding="true" 

问题已经解决。

因此每张卡片看起来都像这样:

                <android.support.v7.widget.CardView
                    card_view:cardUseCompatPadding="true"
                    card_view:cardElevation="4dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                   ...
                </android.support.v7.widget.CardView>

好吧,这比将一些背景作为阴影添加要好,虽然那是一段临时代码。谢谢! - Wiguna R

4

暂时使用以下代码:

<android.support.v7.widget.CardView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                card_view:cardBackgroundColor="@color/WHITE_COLOR"
                card_view:cardCornerRadius="20dp"
                card_view:cardElevation="3dp"
                card_view:cardPreventCornerOverlap="false"
                card_view:contentPadding="0dp">

                <android.support.v7.widget.CardView
                    android:layout_width="200dp"
                    android:layout_height="200dp"
                    android:layout_centerInParent="true"
                    card_view:cardBackgroundColor="@color/RED_COLOR"
                    card_view:cardCornerRadius="20dp"
                    card_view:cardElevation="6dp"
                    card_view:cardPreventCornerOverlap="false"
                    card_view:contentPadding="0dp">


                </android.support.v7.widget.CardView>
                 <View
                android:layout_width="match_parent"
                android:layout_height="4dp"
                android:background="@drawable/shadow" />

            </android.support.v7.widget.CardView>

请将此 xml 代码包含在名为 shadow.xml 的 drawable 文件夹中
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="@android:color/transparent"
        android:endColor="#40000000"
        android:angle="90" />
</shape

0

在 CardView 下方添加 View,并设置 layout_marginTop 属性即可。我通过这种方式解决了我的问题,希望你也能解决。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:orientation="vertical"

    <androidx.cardview.widget.CardView
        android:id="@+id/cvLogin"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_marginTop="10dp"
        app:cardBackgroundColor="@android:color/white"
        app:cardCornerRadius="20dp"
        app:cardElevation="2dp"
        app:cardPreventCornerOverlap="false"
        app:cardUseCompatPadding="false">

        <androidx.cardview.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="1dp"
            app:cardBackgroundColor="@color/colorPrimary"
            app:cardCornerRadius="20dp"
            app:cardElevation="0dp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="Log In"
                    android:textAllCaps="true"
                    android:textColor="@android:color/white"
                    android:textSize="13sp" />

        </androidx.cardview.widget.CardView>

    </androidx.cardview.widget.CardView>

    <View
        android:layout_width="10dp"
        android:layout_height="10dp"
        android:layout_marginTop="5dp" />
</LinearLayout>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接