Mit einem Snackbar
kannst du dem Nutzer eine kurze Nachricht anzeigen lassen. 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-Anwendung kann beispielsweise eine Snackbar
verwenden, um dem Nutzer mitzuteilen, dass die Anwendung erfolgreich eine E-Mail gesendet hat.
CoordinatorLayout verwenden
Ein Snackbar
ist mit einer Ansicht verknüpft. Snackbar
bietet grundlegende Funktionen, wenn es an ein von der View
-Klasse abgeleitetes Objekt angehängt wird, z. B. an eines der üblichen Layoutobjekte. Wenn Snackbar
jedoch mit einem CoordinatorLayout
verknüpft ist, erhält das Snackbar
zusätzliche Funktionen:
- Der Nutzer kann die
Snackbar
schließen, indem er sie wegwischt. - Beim Layout werden andere UI-Elemente verschoben, wenn
Snackbar
angezeigt wird. Wenn das Layout beispielsweise einFloatingActionButton
hat, wird die Schaltfläche nach oben verschoben, wennSnackbar
angezeigt wird, anstattSnackbar
über die Schaltfläche zu zeichnen. In Abbildung 1 ist das dargestellt.
Die Klasse CoordinatorLayout
bietet eine Obermenge der Funktionalität von FrameLayout
.
Wenn deine App bereits ein FrameLayout
verwendet, kannst du dieses Layout durch ein CoordinatorLayout
ersetzen, um die vollen Snackbar
-Funktionen zu aktivieren. Wenn in deiner App andere Layoutobjekte verwendet werden, verpacke die vorhandenen Layoutelemente mit einem CoordinatorLayout
, 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>
Lege ein android:id
-Tag für dein CoordinatorLayout
fest.
Sie benötigen die Layout-ID, wenn Sie die Mitteilung anzeigen lassen möchten.
Nachricht anzeigen
Zum Anzeigen einer Mitteilung sind zwei Schritte erforderlich. Zuerst erstellen Sie ein Snackbar
-Objekt mit dem Nachrichtentext. Anschließend rufen Sie die Methode show()
dieses Objekts auf, um dem Nutzer die Nachricht anzuzeigen.
Snackbar-Objekt erstellen
Erstellen Sie ein Snackbar
-Objekt, indem Sie die statische Methode Snackbar.make()
aufrufen. Geben Sie beim Erstellen von Snackbar
die angezeigte Nachricht und die Dauer an, für die sie angezeigt werden soll:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- Aufruf
-
Die Ansicht, an die
Snackbar
angehängt werden soll. Die Methode durchsucht die Ansichtshierarchie in der übergebenen Ansicht bis zu einemCoordinatorLayout
oder der Inhaltsansicht des Fensterdekors. Normalerweise ist es einfacher, dasCoordinatorLayout
um deinen Inhalt zu übergeben. - String-ID
- Die Ressourcen-ID der Mitteilung, die angezeigt werden soll. Dabei kann es sich um formatierten oder unformatierten Text handeln.
- dauer
-
Die Zeitspanne, in der die Nachricht angezeigt wird. Dies kann
LENGTH_SHORT
oderLENGTH_LONG
sein.
Nachricht dem Nutzer anzeigen
Nachdem du das Snackbar
erstellt hast, rufe die zugehörige show()
-Methode auf, um dem Nutzer das Snackbar
anzuzeigen:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
Das System zeigt nicht mehrere Snackbar
-Objekte gleichzeitig an. Wenn in der Ansicht derzeit ein anderes Snackbar
-Objekt angezeigt wird, stellt das System Ihr Snackbar
-Objekt in die Warteschlange und zeigt es an, nachdem das aktuelle Snackbar
-Objekt abläuft oder geschlossen wurde.
Wenn du dem Nutzer eine Nachricht anzeigen möchtest und keine Dienstprogrammmethoden des Snackbar
-Objekts aufrufen musst, musst du den Verweis auf das Snackbar
nicht beibehalten, nachdem du show()
aufgerufen hast. Aus diesem Grund wird die Methodenverkettung häufig verwendet, um ein Snackbar
in einer 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();