Intento usar el CardView
y 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
LinearLayout
entre 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,
cardPreventCornerOverlap
El atributo agrega relleno a CardView en v20 y antes para evitar intersecciones entre el contenido de la tarjeta y las esquinas redondeadas.cardUseCompatPadding
El atributo agrega relleno en API v21 +, así como para tener las mismas medidas con versiones anteriores.fuente