Sie können einen
Snackbar
bis
eine kurze Nachricht für die
Nutzenden anzuzeigen. „Mag ich“-Bewertung entfernen
Benachrichtigungen, die
verschwindet die Nachricht nach kurzer Zeit automatisch. Ein Snackbar
ist
ideal für kurze Botschaften, auf die die Nutzenden nicht reagieren müssen. Beispiel:
E-Mail-App kann dem Nutzer mithilfe von Snackbar
mitteilen, dass die App
hat erfolgreich eine E-Mail gesendet.
CoordinatorLayout verwenden
Ein Snackbar
ist mit einer Ansicht verknüpft. Das Snackbar
bietet grundlegende Funktionen, wenn es an ein Objekt angehängt ist, das aus dem
View
-Klasse, z. B.
alle gängigen Layoutobjekte. Wenn Snackbar
jedoch
an eine
CoordinatorLayout
,
Snackbar
erhält 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. Enthält das Layout zum BeispielFloatingActionButton
, wird die Schaltfläche nach oben verschoben, wennSnackbar
angezeigt wird.Snackbar
auf der Schaltfläche zu zeichnen. Sie können sehen, wie sieht das in Abbildung 1 aus.
Die Klasse CoordinatorLayout
bietet eine Obermenge von
Funktionalität von
FrameLayout
.
Wenn in deiner App bereits ein FrameLayout
verwendet wird, kannst du dieses Layout ersetzen.
mit einem CoordinatorLayout
, um den vollen Snackbar
zu aktivieren
Funktionalität. Wenn in deiner App andere Layoutobjekte verwendet werden, kannst du das vorhandene Layout umschließen.
Elemente in einer CoordinatorLayout
, wie im Folgenden gezeigt
Beispiel:
<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. Zunächst erstellen Sie ein
Snackbar
-Objekt mit dem Nachrichtentext. Dann rufen Sie die Funktion
show()
um dem Nutzer die Mitteilung anzuzeigen.
Snackbar-Objekt erstellen
Erstellen Sie ein Snackbar
-Objekt durch Aufrufen der statischen
Snackbar.make()
. Geben Sie beim Erstellen des Snackbar
die Nachricht an,
und wie lange die Meldung angezeigt werden soll:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- Ansehen
-
Die Ansicht, an die
Snackbar
angehängt werden soll. Die Methode sucht nach den von der übergebenen Ansicht bis zu einemCoordinatorLayout
oder die Inhaltsansicht der Fensterdekoration. Normalerweise ist es einfacher, dieCoordinatorLayout
der Ihren Content einschließt. - String-ID
- Die Ressourcen-ID der Mitteilung, die angezeigt werden soll. Dieser kann formatiert oder unformatierten Text.
- dauer
-
Die Zeitspanne, in der die Nachricht angezeigt wird. Dabei kann es sich um
LENGTH_SHORT
oderLENGTH_LONG
.
Zeige dem Nutzer die Nachricht
Nachdem Sie die Snackbar
erstellt haben, rufen Sie deren show()
auf
Methode, um dem Nutzer Snackbar
anzuzeigen:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
Das System zeigt nicht mehrere Snackbar
-Objekte gleichzeitig an
Wenn also in der Ansicht gerade ein anderer Snackbar
angezeigt wird,
System stellt Ihr Snackbar
in die Warteschlange und zeigt es nach dem aktuellen
Snackbar
läuft ab oder wird geschlossen.
Wenn Sie dem Nutzer eine Nachricht anzeigen möchten und keine der
Snackbar
-Objekts Dienstprogrammmethoden verwenden, müssen Sie das Feld
Verweis auf Snackbar
nach dem Aufrufen von show()
. Für
Aus diesem Grund wird häufig Methodenverkettung verwendet, um eine
Snackbar
in einer Anweisung:
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();