android android-layout android-5.0-lollipop android-cardview

android - ¿La sombra de Cardview no aparece en los dispositivos de lollipop?



android-layout android-5.0-lollipop (6)

Como se mencionó allí, CardView no muestra Shadow en Android L, asegúrese de que está dibujando su vista usando hardwareAccelerated = true

hardwareAccelerated = true

hardwareAccelerated = false

Ver Android Hardware Acceleration para más detalles

Estoy usando cardview en mi aplicación de Android. Sin embargo, la sombra no se muestra. Aquí está el diseño xml

La sombra predeterminada del menú de opciones tampoco se muestra.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ECEDF0" android:orientation="vertical" > <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:clipChildren="false" card_view:cardBackgroundColor="@color/white" card_view:cardCornerRadius="4dp" card_view:cardElevation="14dp" card_view:cardUseCompatPadding="true" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="20dp" android:text="Google Play" /> </android.support.v7.widget.CardView> </LinearLayout>


Después de revisar nuevamente los documentos, finalmente encontré la solución.

Simplemente agregue card_view:cardUseCompatPadding="true" a su CardView y las sombras aparecerán en los dispositivos Lollipop.

Lo que sucede es que el área de contenido en un CardView toma diferentes tamaños en los dispositivos pre-lollipop y lollipop. Entonces, en los dispositivos con piruletas, la sombra está cubierta por la tarjeta, por lo que no es visible. Al agregar este atributo, el área de contenido permanece igual en todos los dispositivos y la sombra se vuelve visible.

Mi código xml es como:

<android.support.v7.widget.CardView android:id="@+id/media_card_view" android:layout_width="match_parent" android:layout_height="130dp" card_view:cardBackgroundColor="@android:color/white" card_view:cardElevation="2sp" card_view:cardUseCompatPadding="true" > ... </android.support.v7.widget.CardView>


Hola amigos, obtuve la solución del problema anterior. Solo agregue este código en su xml.

<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_margin="8dp" android:id="@+id/griditem" android:layout_height="match_parent" card_view:cardUseCompatPadding="true" card_view:cardElevation="4dp" card_view:cardCornerRadius="3dp">`

Espero que te sea útil ...


Para Lollipop y superior, debe agregar algunos márgenes a la tarjeta:

<android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dp" />

Dado que la sombra se encuentra fuera de la vista real


Por favor intente poner android: hardwareAccelerated = "false" El archivo androidManifest puede resolver su problema porque también enfrenté el mismo problema y lo resolví agregando 1 línea solo en el manifiesto.


para alguien ,

otra cosa que debes tener en cuenta, las sombras no se mostrarán si tienes esta línea en el manifiesto:

android: hardwareAccelerated = "falso"

Intenté todas las sugerencias, pero solo funcionó cuando quité la línea, la razón por la que tenía la línea era porque mi aplicación funciona con varias imágenes de mapas de bits y hacían que la aplicación fallara.