Pop-up-Nachricht erstellen und einblenden

Schreiben Sie jetzt
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Weitere Informationen zum Hinzufügen von Benachrichtigungen in „Schreiben“

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 ein FloatingActionButton hat, wird die Schaltfläche nach oben verschoben, wenn Snackbar angezeigt wird, anstatt Snackbar ü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.

Abbildung 1: CoordinatorLayout verschiebt FloatingActionButton nach oben, wenn Snackbar angezeigt wird.

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 einem CoordinatorLayout oder der Inhaltsansicht des Fensterdekors. Normalerweise ist es einfacher, das CoordinatorLayout 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 oder LENGTH_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();