how do I get rid of this strange padding in the layout below:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/ColorPrimaryDark"> <android.support.v7.widget.CardView android:layout_width="fill_parent" android:layout_height="wrap_content" card_view:cardCornerRadius="10dp" android:layout_marginTop="9dp" android:layout_marginLeft="9dp" android:layout_marginRight="9dp" card_view:cardElevation="0.01dp" android:layout_marginBottom="0dp" card_view:cardPreventCornerOverlap="true" card_view:cardUseCompatPadding="true" card_view:cardBackgroundColor="@color/ColorPrimary"> <RelativeLayout android:id="@+id/top_layout" android:layout_width="fill_parent" android:layout_height="180dp" android:background="@color/ColorPrimary"> <ImageView android:id="@+id/img_thumbnail" android:layout_width="fill_parent" android:layout_height="180dp" android:scaleType="fitXY" android:background="@drawable/korabltest"/> <RelativeLayout android:id="@+id/inner_layout" android:layout_width="fill_parent" android:layout_height="36dp" android:background="#5c1b1b1b" android:layout_gravity="bottom" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> <TextView android:id="@+id/tv_nature" android:layout_width="wrap_content" android:layout_height="50dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:layout_gravity="bottom" android:gravity="center_vertical" android:alpha="0.8" android:textColor="#fff" android:textSize="18sp" android:text="Lexington" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:id="@+id/tv_nature_1" android:layout_width="wrap_content" android:layout_height="50dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:layout_gravity="bottom" android:gravity="center_vertical" android:alpha="0.8" android:textColor="#fff" android:textSize="18sp" android:textStyle="bold" android:text="527 (31%)" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout> </RelativeLayout> </android.support.v7.widget.CardView> </LinearLayout>
UDPATE
Well, seems there is a much easier way to do it, without guessing the padding and all:
card_view:cardPreventCornerOverlap="false"
or using java:
cardView.setPreventCornerOverlap(false)
You can read all about it here.
ORIGINAL ANSWER
It is an intentional padding to avoid content from bleeding off the rounded corner of the card in pre lollipop versions (since clipping is not available). If you want to get rid of it all together you may use a negative padding in pre-lollipop versions for the contentPadding
attribute of the CardView
such as:
card_view:contentPadding="-8dp"
or using java:
int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics()); cardView.setContentPadding(-padding,-padding,-padding,-padding);
I'm not particularly sure which value will work seamlessly, you'll need to experiment and see for yourself.
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