Android CardView с закругленными углами отображает серые углы

Я раздуваю пользовательский макет с помощью CardView внутри макета. Округленные углы отображаются так, как ожидалось, но я также получаю серый фон за углами.

Код прост, использует CardView с угловым радиусом и цветом фона. Я попытался установить прозрачный фон, но не работает. Однако, если я установил другой непрозрачный цвет, он отображается в углах.

Код прилагается.

<!--?xml version="1.0" encoding="utf-8"?-->
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/transparent"> <android.support.v7.widget.cardview android:layout_width="match_parent" android:layout_height="wrap_content" app:cardbackgroundcolor="@android:color/white" app:cardcornerradius="6dp" app:cardelevation="5dp"> <relativelayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"> <textview android:id="@+id/tvProgress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparentstart="true" android:layout_centervertical="true" android:layout_toleftof="@+id/ivIcon" android:layout_tostartof="@+id/ivIcon" android:background="@android:color/transparent" android:padding="@dimen/elementPaddingSmall" android:text="Initial Discussion" android:textappearance="?android:attr/textAppearanceMedium" android:textcolor="@android:color/black"> <imageview android:id="@+id/ivIcon" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignparentend="true" android:layout_alignparentright="true" android:background="@color/lightBrown" android:scaletype="centerInside" android:src="@drawable/ic_checkmark_circle"> </imageview></textview></relativelayout> </android.support.v7.widget.cardview>
</relativelayout>

Результат:

3 ответа

Это из-за тени, вам нужно предоставить пространство для просмотра, чтобы показать полную тень. Добавьте android:layout_margin="5dp" в CardView, и вы увидите, что "серый" цвет обрезается.

Решение добавляет app:cardUseCompatPadding="true" в CardView, и это даст необходимый интервал.


Попробуй это...

Просто установите значение 0 для приложения: cardElevation

.....
<android.support.v7.widget.cardview android:layout_width="match_parent" android:layout_height="wrap_content" app:cardbackgroundcolor="@android:color/white" app:cardcornerradius="6dp" app:cardelevation="0dp">
.....
</android.support.v7.widget.cardview>

ИЛИ вы можете вызвать cardView.setCardElevation(0), чтобы программно отключить тень.


Удалите родительский RelativeLayout который обертывает CardView и вам хорошо идти. Именно так:

<!--?xml version="1.0" encoding="utf-8"?-->
<android.support.v7.widget.cardview xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" app:cardbackgroundcolor="@android:color/white" app:cardcornerradius="6dp" app:cardelevation="5dp"> <relativelayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"> <textview android:id="@+id/tvProgress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparentstart="true" android:layout_centervertical="true" android:layout_toleftof="@+id/ivIcon" android:layout_tostartof="@+id/ivIcon" android:background="@android:color/transparent" android:padding="@dimen/elementPaddingSmall" android:text="Initial Discussion" android:textappearance="?android:attr/textAppearanceMedium" android:textcolor="@android:color/black"> <imageview android:id="@+id/ivIcon" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignparentend="true" android:layout_alignparentright="true" android:background="@color/lightBrown" android:scaletype="centerInside" android:src="@drawable/ic_checkmark_circle"> </imageview></textview></relativelayout>
</android.support.v7.widget.cardview>

licensed under cc by-sa 3.0 with attribution.