Der Titel ist ziemlich selbsterklärend.
Mit dem folgenden Code wird kein Schatten unter der Floating Action-Schaltfläche dargestellt. Was kann man tun, um Schatten zu rendern? Wird diese Funktion auch bei API 21+ wirklich nicht unterstützt?
<Android.support.design.widget.FloatingActionButton
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:src="@drawable/ic_add"
Android:clickable="true" />
Hinweis: Durch das Hinzufügen von Android:elevation
wird in API 21 kein Schatten hinzugefügt.
Screenshot aus dem Beispiel von dandar3: https://github.com/dandar3/Android-support-design
Einfach app:borderWidth="0dp"
einstellen, lösen Sie diese Probleme für mich.
Hinweis: Vergessen Sie nicht, xmlns:app="http://schemas.Android.com/apk/res-auto"
zu Ihrem Root-Layout hinzuzufügen.
Dieses Problem sollte in der nächsten Version der Android-Designbibliothek behoben werden.
Für API 21+ müssen Sie app:borderWidth="0dp"
und app:elevation="[number]dp"
einstellen. Stellen Sie die Höhe ein, die Sie der gewünschten Schattengröße zuweisen möchten:
Hier ist ein Beispiel für Code für 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">
Für die unten aufgeführten APIs bis 21 (Android 4) ist zu beachten, dass FAB einen Rand um die Schaltfläche legt, um den Schatten zu zeichnen. Dann sollten Sie so etwas tun (ich verwende diesen Code und arbeite derzeit):
<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">
Ich ziehe es vor, xmlns:app="http://schemas.Android.com/apk/res-auto"
am Anfang des XML-Dokuments zu setzen, aber ich füge es nur ein, um Sie daran zu erinnern;]
Wenn dies für einige immer noch nicht funktioniert, besteht ein wesentlicher Unterschied zwischen:
app:elevation="6dp"
app:borderWidth="0dp"
und
app:borderWidth="0dp"
app:elevation="6dp"
Die Reihenfolge scheint aus irgendeinem Grund von Bedeutung zu sein (Die erste Bestellung funktioniert, die zweite nicht)
Ich hatte das gleiche Problem und habe es durch das Löschen dieses Tags aus meiner AndroidManifest.xml zum Laufen gebracht.
Android:hardwareAccelerated="false"
Ich habe es zunächst zusammen mit Android:largeHeap="true"
hinzugefügt, weil ich dachte, ich brauche es für eine HeatMap, in der eine große Anzahl von Punkten angezeigt wurde, aber dann wurde mir klar, dass es einfach mit Android:largeHeap="true"
funktionieren könnte.
Überprüfen Sie das Manifest in einem Projekt oder in Bibliotheken im Application-Tag und delete them
Android:hardwareAccelerated="false"
Android:largeHeap="true"
Wenn Sie diese Optionen benötigen, funktionieren Schatten und Transformationsanimationen nicht
Wenn es hilft, habe ich verwendet
Android:tint="@color/myColor"
anstatt
Android:backgroundTint="@color/myColor".
Ersetzen des Farbtons durch backgroundTint holt den Schatten zurück.