working not cardview card android appcompat android-cardview android-elevation

not - Configuración de elevación en XML en AppCompat CardView en Android 5.0



cardview android material design (4)

Me solucionó añadiendo

xmlns: card_view = "http://schemas.android.com/apk/res-auto"

por ejemplo:

<android.support.v7.widget.CardView 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="wrap_content" android:layout_marginTop="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" card_view:cardCornerRadius="5dp">

Por lo que entiendo, al principio de la etapa de vista previa no parecía haber forma de establecer la elevación en XML solo en CardView sin un hack en Java. Ahora que el lanzamiento oficial está listo, ¿hay alguna forma de hacerlo en XML sin escribir código Java para establecer la elevación?

He intentado card_view:cardElevation a ningún efecto. Cuando estaba usando los emuladores para 5.0, pensé que todo estaba bien. Pero ahora que estoy usando la versión oficial en mi dispositivo real, todos mis CardView desaparecieron

Pre Lollipop, funciona genial.

Aquí está mi xml completo

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:orientation="horizontal" android:layout_width="match_parent" android:id="@+id/cv1" card_view:cardElevation="4dp" android:layout_margin="6dp" card_view:cardCornerRadius="3dp" android:layout_height="match_parent">


Parece un problema de margen / margen, intente establecer el atributo cardUseCompatPadding en verdadero. P.ej:

<android.support.v7.widget.CardView 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:layout_margin="6dp" card_view:cardUseCompatPadding="true" card_view:cardElevation="4dp" card_view:cardCornerRadius="3dp">

Explicación del documento de Android:

CardView agrega relleno adicional para dibujar sombras en plataformas antes de L.

Esto puede hacer que las Tarjetas tengan diferentes tamaños entre L y antes L. Si necesita alinear CardView con otras Vistas, es posible que necesite recursos de dimensión específicos de la versión de API para dar cuenta de los cambios. Como alternativa, puede establecer el indicador cardUseCompatPadding en verdadero y CardView agregará los mismos valores de relleno en las plataformas L y posteriores.

Desde que establecer el indicador cardUseCompatPadding en true agrega espacios innecesarios en la interfaz de usuario, el valor predeterminado es falso.


Si tienes esta línea

android:hardwareAccelerated="false"

en la etiqueta de aplicación de manifiesto, tus sombras no se mostraron. intenta eliminar esta linea

o usar

android:hardwareAccelerated="true"

¡Esto funcionó para mí! Espero que funcione para ti tambien :)


Tienes que usar el atributo cardElevation

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" card_view:cardElevation="4dp" />