Pop-up-Nachricht erstellen und einblenden

Compose ausprobieren
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Informationen zum Hinzufügen von Benachrichtigungen im Bereich „Schreiben“

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 ein FloatingActionButton enthält, wird die Schaltfläche bei einem Snackbar nach oben verschoben, anstatt das Snackbar ü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 eine CoordinatorLayout oder die Inhaltsansicht des Fensters erreicht. Normalerweise ist es einfacher, den CoordinatorLayout 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 oder LENGTH_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();