Cardview shadow not appearing in lollipop devices?
Solution 1
After going through the docs again, I finally found the solution.
Just add card_view:cardUseCompatPadding="true"
to your CardView
and shadows will appear on Lollipop devices.
What happens is, the content area in a CardView
take different sizes on pre-lollipop and lollipop devices. So in lollipop devices the shadow is actually covered by the card so its not visible. By adding this attribute the content area remains the same across all devices and the shadow becomes visible.
My xml code is like :
<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>
Solution 2
As mentioned there CardView not showing Shadow in Android L
make sure that you are drawing your view using hardwareAccelerated = true
See Android Hardware Acceleration for details
Solution 3
For Lollipop and higher you should add some margins to the card:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
/>
Since the shadow lies outside of the actual view
Solution 4
for someone ,
one other thing that you should be aware of, shadows will not show if you have this line in the manifest:
android:hardwareAccelerated="false"
I tried all of the suggested stuff but it only worked for me when i removed the line, the reason i had the line was because my app works with a number of bitmap images and they were causing the app to crash.
Comments
-
Dinesh T A almost 4 years
Am using the cardview in my android app. However the shadow is not showing. Here is the xml layout
The default optionsmenu shadow also not showing.
<?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>