How to add shadow to the FAB provided with the android support design library? How to add shadow to the FAB provided with the android support design library? android android

How to add shadow to the FAB provided with the android support design library?


Simply setting app:borderWidth="0dp" resolve this issues for me.

Note: don't forget to add xmlns:app="http://schemas.android.com/apk/res-auto" to your root layout.

This issue should be fixed in next release of android design library.


For API 21+ you need to set app:borderWidth="0dp" and app:elevation="[number]dp". Setting elevation you are giving the size of shadow that you want:

Example of values for parameter "elevation"

Here is an example of code for 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">

One important thing to remember for APIs below to 21 (Android 4), is for terms of compatibility FAB will put a margins around your button to draw the shadow. Then you should do something like that (I'm currently using this code and works):

<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">

I prefer to put xmlns:app="http://schemas.android.com/apk/res-auto" at the beginning of the XML, but I put there just to remind you ;]


I was experiencing this same issue and I got it to work by deleting this tag from my AndroidManifest.xml.

android:hardwareAccelerated="false"

I initially added it, together with android:largeHeap="true", because I thought I needed it for a HeatMap in which a large number of points where shown, but then I realized it could work just with android:largeHeap="true".