Cardview没有沿底部显示阴影

时间:2015-04-02 15:43:24

标签: android android-layout android-5.0-lollipop shadows

我有以下用于cardview的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent" android:padding="2dp">
<!-- A CardView that contains a TextView -->
<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_gravity="center"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="0dp">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="5dp">
        <TextView
            android:id="@+id/info_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>
</android.support.v7.widget.CardView>
</LinearLayout>

这导致这些阴影在底部没有阴影

http://i.imgur.com/xNoIDR4.png

但是我试图得到像这样的影子,更好地围绕整张卡。

enter image description here

我尝试过更改高程无济于事,而且在这个问题上进行搜索似乎只会带来没有阴影所有问题的人,这不是我的情况。

我怎样才能让阴影正确?

感谢。

6 个答案:

答案 0 :(得分:87)

您需要在卡片视图中添加此xml属性

  

应用程式:cardUseCompatPadding = “真”

答案 1 :(得分:2)

使用card_view设置高程:cardElevation属性

答案 2 :(得分:2)

clipChildren="false"添加到父LinearLayout也应该有效。

答案 3 :(得分:0)

将这些行添加到cardView

    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp"

答案 4 :(得分:0)

您可以将此代码用于cardView

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_gravity="center"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="0dp"
    android:elevation="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp">
  
</android.support.v7.widget.CardView>

答案 5 :(得分:0)

我遇到了同样的问题,直到我记得如果父级包装其内容,则它不会包装阴影,所以我给了父级比子级更大的尺寸,这样它将包括子级和阴影孩子的

 <androidx.constraintlayout.widget.ConstraintLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="110dp"
android:layout_height="110dp">

<androidx.cardview.widget.CardView xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/tools"
    android:layout_width="98dp"
    android:layout_height="98dp"
    app:cardCornerRadius="10dp"
    app:cardElevation="5dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <androidx.appcompat.widget.AppCompatImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        app:srcCompat="@drawable/manhattan" />

  
</androidx.cardview.widget.CardView>

  </androidx.constraintlayout.widget.ConstraintLayout>