Intento usar el CardViewy funciona bien por debajo de 5.0, pero se ve extraño en Lollipop.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<android.support.v7.widget.CardView android:layout_width="match_parent"
android:layout_height="200dp">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="card1"
android:textAppearance="?android:attr/textAppearanceLarge" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView android:layout_width="match_parent"
android:layout_height="200dp">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="card2"
android:textAppearance="?android:attr/textAppearanceLarge" />
</android.support.v7.widget.CardView>
</LinearLayout>
Encuentro la misma pregunta cuando uso el RecyclerView, ¿debo agregar algo si se ejecuta en Lollipop?
android
android-cardview
cajsaiko
fuente
fuente

LinearLayoutentre las cartasRespuestas:
Establecer esto en un
CardView:app:cardUseCompatPadding="true"De la documentación:
fuente
android:divider="@null".Use estas dos etiquetas a continuación dentro de su vista de tarjeta:
app:cardPreventCornerOverlap="false" app:cardUseCompatPadding="true"fuente
La primera imagen es el comportamiento esperado de la vista de tarjeta. cuando la carta tiene elevación, la sombra cae sobre las capas inferiores. En los dispositivos de pre-piruleta la elevación se realiza agregando relleno. por lo que los dispositivos de pre-piruleta tendrán un relleno alrededor de la vista de la tarjeta.
fuente
Tienes que agregar
app:cardUseCompatPadding="true"a tuCardview. Pero solo agregar eso puede generar un error. Para evitar ese error, también debe agregarxmlns:app="http://schemas.android.com/apk/res-auto"a suCardView.Por ejemplo,
<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_height="wrap_content" android:layout_width="match_parent" app:cardUseCompatPadding="true"> // Other views here </android.support.v7.widget.CardView>Algunos agregarían
card_view:cardUseCompatPadding="true"y enxmlns:card_view="http://schemas.android.com/apk/res-auto"lugar de los mencionados anteriormente. Ambas formas son correctas.Si desea saber más sobre la aplicación en XML (Android), lea esta respuesta :
Aunque las respuestas anteriores resolverán el problema, no explicaron qué hace cada atributo. Para ser más útil para responder a los buscadores,
cardPreventCornerOverlapEl atributo agrega relleno a CardView en v20 y antes para evitar intersecciones entre el contenido de la tarjeta y las esquinas redondeadas.cardUseCompatPaddingEl atributo agrega relleno en API v21 +, así como para tener las mismas medidas con versiones anteriores.fuente