CardView 里面的 CardView 没有阴影
CardView inside CardView Doesn't Have Shadow
我有一个CardView
里面另一个CardView
,但是childCardView
周围没有阴影。知道为什么吗?
<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>
暂时使用此代码..
<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
的可绘制文件夹中
<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
我遇到了完全一样的问题
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>
您可以在具有 属性 layout_marginTop 的 CardView 下方添加 View。通过这样做我的问题就解决了,希望你的也是。
<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>
我有一个CardView
里面另一个CardView
,但是childCardView
周围没有阴影。知道为什么吗?
<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>
暂时使用此代码..
<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
的可绘制文件夹中<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
我遇到了完全一样的问题
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>
您可以在具有 属性 layout_marginTop 的 CardView 下方添加 View。通过这样做我的问题就解决了,希望你的也是。
<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>