Cómo agregar sombra a la FAB proporcionada con la biblioteca de diseño de soporte de Android?

El título es bastante auto explicativo.

El siguiente código no muestra sombra debajo del botón de acción flotante. ¿Qué se puede hacer para hacer sombra? ¿Esta función realmente no es compatible incluso en la API 21+?

<android.support.design.widget.FloatingActionButton android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/ic_add" android:clickable="true" /> 

Nota: La adición de android:elevation no agrega sombra a la API 21.

Ejemplo de captura de pantalla

Captura de pantalla tomada del ejemplo por dandar3: https://github.com/dandar3/android-support-design

Basta con configurar la app:borderWidth="0dp" resolver estos problemas para mí.

Nota: no olvides añadir xmlns:app="http://schemas.android.com/apk/res-auto" a tu diseño raíz.

Este problema debe arreglarse en la siguiente versión de la biblioteca de diseño de Android.

Para API 21+ es necesario configurar app:borderWidth="0dp" y app:elevation="[number]dp" . Estableciendo la elevación que está dando el tamaño de la sombra que desea:

Ejemplo de valores para el parámetro "elevación"

A continuación se muestra un ejemplo de código para API 21+:

 <android.support.design.widget.FloatingActionButton xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/locate_user_FAB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/location_off" app:elevation="6dp" app:borderWidth="0dp" android:layout_above="@+id/take_taxi_FAB" app:backgroundTint="@color/colorAccentGrey"> 

Una cosa importante a recordar para APIs abajo a 21 (androide 4), es para los términos de la compatibilidad FAB pondrá los márgenes alrededor de su botón para dibujar la sombra. Entonces deberías hacer algo así (estoy usando este código y funciona):

 <android.support.design.widget.FloatingActionButton xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/locate_user_FAB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/location_off" app:elevation="6dp" app:borderWidth="0dp" android:layout_above="@+id/take_taxi_FAB" android:layout_alignParentRight="true" android:layout_marginRight="@dimen/map_FAB_marginRight" android:layout_marginBottom="@dimen/locate_user_FAB_marginBottom" app:backgroundTint="@color/colorAccentGrey"> 

Prefiero poner xmlns:app="http://schemas.android.com/apk/res-auto" al principio del XML, pero lo puse allí sólo para recordarle;]

Si esto todavía no funciona para algunos, hay una diferencia significativa entre:

 app:elevation="6dp" app:borderWidth="0dp" 

y

 app:borderWidth="0dp" app:elevation="6dp" 

Orden parece importar por alguna razón (la primera orden funciona, la segunda no) y esto es de la biblioteca de soporte 23.3.0

Comprobar el manifiesto en el proyecto o las bibliotecas en Etiqueta de aplicación y eliminarlas

 android:hardwareAccelerated="false" android:largeHeap="true" 

Pero si necesitas estas opciones, entonces las sombras y las animaciones de transformación no funcionarán

Estaba experimentando este mismo problema y lo conseguí para trabajar al eliminar esta etiqueta de mi AndroidManifest.xml.

 android:hardwareAccelerated="false" 

Lo añadí inicialmente, junto con android:largeHeap="true" , porque pensé que lo necesitaba para un HeatMap en el que un gran número de puntos donde se muestra, pero luego me di cuenta de que podría funcionar sólo con android:largeHeap="true" .

  • Botón de acción flotante en una actividad - ¿cómo anclar a una vista de reciclaje en un fragmento?
  • Cómo integrar un botón de acción flotante en diseño lineal con barra de herramientas
  • Agregar FloatingActionButton en el diseño de barra de herramientas de contracción
  • Anclaje de ImageView a Collapsing Toolbar
  • Cómo eliminar la sombra circundante FloatingActionButton?
  • Bloqueo de sombra de botón de acción flotante en los márgenes de vista
  • Error al inflacionar la clase android.support.design.widget.FloatingActionButton
  • Cómo cambiar FloatingActionButton entre pestañas?
  • Condición de carrera al mostrar y ocultar FAB con AnimationUtils
  • FloatingActionButton, layout_anchor y layout_gravity
  • Botones de acción flotante desaparecen en el desplazamiento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.