Android CardView удаляет прописку

Как мне избавиться от этого странного дополнения в макете ниже:

Введите описание изображения здесь

<?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> 

Solutions Collecting From Web of "Android CardView удаляет прописку"

UDPATE

Ну, кажется, есть намного более простой способ сделать это, не догадываясь о дополнении и всем:

 card_view:cardPreventCornerOverlap="false" 

Или используя java:

 cardView.setPreventCornerOverlap(false) 

Здесь вы можете прочитать все.

ОРИГИНАЛЬНЫЙ ОТВЕТ

Это преднамеренное заполнение, чтобы избежать содержимого от кровотечения с закругленного угла карты в вариантах до леллипопа (так как отсечение недоступно). Если вы хотите избавиться от всего этого, вы можете использовать отрицательное дополнение в версиях до contentPadding атрибута contentPadding для CardView например:

 card_view:contentPadding="-8dp" 

Или используя java:

 int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics()); cardView.setContentPadding(-padding,-padding,-padding,-padding); 

Я не особо уверен, какое значение будет работать без проблем, вам нужно поэкспериментировать и убедиться сами.

У меня такая же проблема, и это сработало для меня.

 app:cardPreventCornerOverlap="false" 

Для устройства с API <21 я должен был создать собственный класс ImageView, переопределив onDraw, чтобы нарисовать круглые углы.

 @Override protected void onDraw(Canvas canvas) { float radius = getContext().getResources().getDimension(R.dimen.card_corner_radius); Path path = new Path(); RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight()); path.addRoundRect(rect, radius, radius, Path.Direction.CW); canvas.clipPath(path); super.onDraw(canvas); }