No se muestra la elevación de Android de View en CardView
Tengo un RelativeLayout dentro de un CardView que quiero elevar en Android Lollipop, pero la elevación no se muestra (la sombra no se muestra):
- Forma de diseño de material para Android
- Barra de herramientas dentro de CardView para crear un menú emergente (icono de desbordamiento)
- ¿Hay una biblioteca de diseño / overlay / showcase de Android Material Design onboarding / tutorial?
- Java.lang.IllegalArgumentException: Necesita utilizar un tema Theme.AppCompat (o descendente) con la biblioteca de diseño
- Estilo AppCompat v21 Dark ToolBar
Mi archivo de diseño:
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android.support.v7.cardview="http://schemas.android.com/apk/res-auto" style="@style/CardViewStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:elevation="5dp" android:orientation="horizontal" android.support.v7.cardview:cardElevation="5dp"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:paddingBottom="5dp"> <ImageView android:id="@+id/article_thumb" android:layout_width="match_parent" android:layout_height="150dp" android:layout_alignParentTop="true" android:contentDescription="@string/app_name" android:scaleType="centerCrop" /> <TextView android:id="@+id/article_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/article_thumb" android:layout_marginEnd="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginStart="10dp" android:ellipsize="middle" android:linksClickable="false" android:longClickable="false" android:text="@string/title" android:textAppearance="@style/TextAppearance.AppCompat.Title" android:textColor="@color/black" /> <TextView android:id="@+id/article_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/article_title" android:layout_alignStart="@+id/article_title" android:layout_below="@+id/article_title" android:layout_marginTop="10dp" android:text="@string/date" android:textAppearance="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small" android:textColor="@color/gray" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignEnd="@+id/article_title" android:layout_alignRight="@+id/article_title" android:layout_below="@+id/article_title" android:layout_marginTop="10dp" android:elevation="30dp" android:translationZ="30dp"> <ImageView android:id="@+id/redbubble" android:layout_width="25dp" android:layout_height="25dp" android:layout_gravity="center" android:contentDescription="@string/app_name" android:scaleType="centerCrop" android:src="@drawable/redbubble" /> <TextView android:id="@+id/article_comment_bubble" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textColor="@color/white" /> </RelativeLayout> </RelativeLayout>
Así que dentro de este diseño he añadido estas dos líneas al RelativeLayout para hacer la elevación:
android:elevation="30dp" android:translationZ="30dp"
Alguien una idea de por qué no se muestra? Por el momento lo pruebo con un Emulador usando la API 21 de Android (Lollipop).
- Cómo resaltar el elemento seleccionado de Recycler View?
- ¿Cómo imitar la aplicación de Lollipop teléfono, con el cambio de tamaño de los elementos superiores antes de que el contenido desplazable?
- ¿Cómo mostrar Snackbar cuando se inicia la actividad?
- Diseño de materiales Android
- Diseño de un Spinner, appcompat, material
- Cómo implementar 'tablas de datos' (componente de diseño de material) en android?
- ¿Puedo mostrar el diseño de material Snackbar en el diálogo?
- Configuración de la aplicación: layout_behavior mediante programación
En el diseño raíz en el xml que necesita
xmlns:card_view="http://schemas.android.com/apk/res-auto"
a continuación se muestra el código de un cardview
card_view:cardElevation="5dp"
La sombra no se muestra porque se dibujan fuera de los límites de RelativeLayout y la vista se sujeta a su límite.
Agregue android:clipChildren="false"
al padre de su RelativeLayout o añada una pequeña cantidad de relleno a su vista y defina android:clipToPadding="false"
Debe añadir la propiedad android: elevation al redbubble imageview. Para ver la Sombra de un elemento tienes que añadir android: elevación a esa vista.
Le sugeriría que cambie su imagen de redbubble a la siguiente:
<ImageView android:id="@+id/redbubble" android:layout_width="25dp" android:layout_height="25dp" android:layout_gravity="center" android:contentDescription="@string/app_name" android:scaleType="centerCrop" android:elevation="2dp" android:src="@drawable/redbubble" />
Noté que el mismo problema y la elevación no se muestra porque la línea:
android: layout_below = "@ + id / …."
Generalmente, es porque la sombra se dibuja fuera de los límites visibles.
retirar
android:hardwareAccelerated="false" from manifest