I have a CardView aligned bottom to screen, destpite the elevation I want to add more shadow to top of the CardView. I've tried with
android:shadowColor="#000" android:shadowDx="0" android:shadowDy="30" android:shadowRadius="50"
But see no changes this is my code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:clipToPadding="false" android:clipChildren="false" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!--rest of the code--> <LinearLayout android:layout_width="match_parent" android:layout_alignParentBottom="true" android:shadowColor="#000" android:shadowDx="0" android:shadowDy="30" android:shadowRadius="50" android:layout_height="wrap_content"> <android.support.v7.widget.CardView xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:elevation="8dp" android:divider="@android:color/transparent" android:dividerHeight="0.0px" android:clipToPadding="false" android:clipChildren="false" app:cardElevation="10dp" app:cardPreventCornerOverlap="false"> <!--rest of the code--> </android.support.v7.widget.CardView> </LinearLayout> </RelativeLayout>
Customized CardView First, add a CardView dependency to the application-level build. gradle file. Then create a drawable background for the cards. For that, create a new drawable resource file inside the drawable folder.
To change CardView's elevation in a backward compatible way, use setCardElevation . CardView will use elevation API on Lollipop and before Lollipop, it will change the shadow size.
You need to use a drawable background ( shadow. xml ) in the parent layout which is looking like a shadow. You can replace FF46A9 in shadow. xml to change the color of shadow.
Well margin don't help much, so I put padding on main container and remove all those shadow properties because the android:elevation=""
is what is doing the job.
Here is some clear code, that is working for this need:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:clipToPadding="false" android:clipChildren="false" android:orientation="vertical" android:padding="20dp" android:layout_width="match_parent" android:layout_height="match_parent"> <!--rest of the code--> <LinearLayout android:layout_width="match_parent" android:layout_alignParentBottom="true" android:clipToPadding="false" android:clipChildren="false" android:layout_height="wrap_content"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:elevation="8dp" android:divider="@android:color/transparent" android:dividerHeight="0.0px" android:clipToPadding="false" android:clipChildren="false" card_view:cardElevation="10dp" card_view:cardPreventCornerOverlap="false"> <TextView android:layout_width="match_parent" android:padding="20dp" android:layout_height="wrap_content" android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" /> </android.support.v7.widget.CardView> </LinearLayout> </RelativeLayout>
And an image on how this looks:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With