Mit einem Snackbar
können Sie dem Nutzer eine kurze Nachricht anzeigen. Im Gegensatz zu Benachrichtigungen verschwindet die Meldung nach kurzer Zeit automatisch. Ein Snackbar
ist ideal für kurze Nachrichten, auf die der Nutzer nicht reagieren muss. Eine E-Mail-App kann beispielsweise ein Snackbar
verwenden, um dem Nutzer mitzuteilen, dass die E-Mail erfolgreich gesendet wurde.
CoordinatorLayout verwenden
Eine Snackbar
ist an eine Ansicht angehängt. Der Snackbar
bietet grundlegende Funktionen, wenn er an ein Objekt angehängt ist, das von der Klasse View
abgeleitet ist, z. B. an eines der gängigen Layoutobjekte. Wenn das Snackbar
jedoch mit einem CoordinatorLayout
verknüpft ist, erhält es zusätzliche Funktionen:Snackbar
- Der Nutzer kann das
Snackbar
schließen, indem er es wischt. - Wenn das Symbol
Snackbar
angezeigt wird, werden andere UI-Elemente im Layout verschoben. Wenn das Layout beispielsweise einFloatingActionButton
enthält, wird die Schaltfläche bei einemSnackbar
nach oben verschoben, anstatt dasSnackbar
über der Schaltfläche zu zeichnen. Abbildung 1 zeigt, wie das aussieht.
Die Klasse CoordinatorLayout
bietet eine Obermenge der Funktionen von FrameLayout
.
Wenn in Ihrer App bereits ein FrameLayout
verwendet wird, können Sie dieses Layout durch ein CoordinatorLayout
ersetzen, um die volle Funktionalität von Snackbar
zu aktivieren. Wenn Ihre App andere Layoutobjekte verwendet, schließen Sie die vorhandenen Layoutelemente in CoordinatorLayout
ein, wie im folgenden Beispiel gezeigt:
<android.support.design.widget.CoordinatorLayout android:id="@+id/myCoordinatorLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in a CoordinatorLayout. --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ...Toolbar, other layouts, other elements... --> </LinearLayout> </android.support.design.widget.CoordinatorLayout>
Legen Sie ein android:id
-Tag für Ihre CoordinatorLayout
fest.
Sie benötigen die ID des Layouts, wenn Sie die Mitteilung anzeigen lassen.
Abbildung 1: Mit CoordinatorLayout
wird FloatingActionButton
nach oben verschoben, wenn Snackbar
angezeigt wird.
Nachricht anzeigen
Das Anzeigen einer Nachricht erfolgt in zwei Schritten. Erstellen Sie zuerst ein Snackbar
-Objekt mit dem Nachrichtentext. Rufen Sie dann die Methode show()
dieses Objekts auf, um die Nachricht dem Nutzer anzuzeigen.
Snackbar-Objekt erstellen
Erstellen Sie ein Snackbar
-Objekt, indem Sie die statische Methode Snackbar.make()
aufrufen. Geben Sie beim Erstellen der Snackbar
die angezeigte Nachricht und die Dauer der Anzeige an:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- Ansehen
-
Die Ansicht, an die die
Snackbar
angehängt werden soll. Die Methode sucht in der Ansichtshierarchie von der übergebenen Ansicht aus nach oben, bis sie eineCoordinatorLayout
oder die Inhaltsansicht des Fensters erreicht. Normalerweise ist es einfacher, denCoordinatorLayout
zu übergeben, der Ihre Inhalte umschließt. - stringId
- Die Ressourcen-ID der Nachricht, die angezeigt werden soll. Das kann formatierter oder unformatierter Text sein.
- dauer
-
Die Dauer, für die die Meldung angezeigt werden soll. Das kann
LENGTH_SHORT
oderLENGTH_LONG
sein.
Nachricht für Nutzer anzeigen
Rufe nach dem Erstellen der Snackbar
die show()
-Methode auf, um die Snackbar
für den Nutzer anzuzeigen:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
Das System zeigt nicht mehrere Snackbar
-Objekte gleichzeitig an. Wenn in der Ansicht derzeit ein anderes Snackbar
angezeigt wird, wird Ihr Snackbar
in die Warteschlange gestellt und nach Ablauf oder Schließen des aktuellen Snackbar
angezeigt.
Wenn Sie dem Nutzer eine Nachricht anzeigen möchten und keine der Dienstmethoden des Snackbar
-Objekts aufrufen müssen, müssen Sie den Verweis auf Snackbar
nach dem Aufruf von show()
nicht beibehalten. Aus diesem Grund wird häufig die Methode „Methodenverkettung“ verwendet, um eine Snackbar
in einer einzigen Anweisung zu erstellen und anzuzeigen:
Kotlin
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Java
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();