Remove elevation shadow without removing elevation itself
I just ran into this same problem and this is what fixed it for me:
val withElevationNoShadow = view.findViewById<*your view type*>(*your view id*)
withElevationNoShadow.outlineProvider = null
Keep in mind that the code above is Kotlin, but the Java is almost identical.
This works because shadows are drawn by ViewOutlineProvider
s. By setting your view's ViewOutlineProvider
to null
, you take away the default shadow.
For more info about ViewOutlineProvider
s check out
https://developer.android.com/reference/android/view/ViewOutlineProvider
and
https://developer.android.com/training/material/shadows-clipping
To complete M.Sandholtz answer, you can also define this in XML, with outlineProvider="none".
<View
android:id="@+id/viewElevationNoShadow"
android:outlineProvider="none"
android:elevation="4dp" />