0Pricing
Jetpack Compose Academy · Lektion

Snackbars und SnackbarHostState

Zeigen Sie vorübergehende Nachrichten auf die Material-Art an.

Snackbars und SnackbarHostState ist eine kostenlose Jetpack Compose Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Jetpack Compose Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Jetpack Compose Academy-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

What Is a Snackbar?

A Snackbar is a brief message that slides up at the bottom, like Message sent, then fades on its own. It informs without blocking the screen. 💬

Snackbar vs Dialog

A dialog demands a response; a Snackbar does not. Reach for it for quick confirmations, not for choices the user must make.

Meet SnackbarHostState

Showing a snackbar is driven by SnackbarHostState. This object holds the queue and gives you the function that triggers a message.

val hostState = remember { SnackbarHostState() }

Remember It

Wrap the state in remember so the same SnackbarHostState survives recomposition. A fresh one each frame would lose any pending message.

The snackbarHost Slot

Tell Scaffold where snackbars appear by filling its snackbarHost slot with a SnackbarHost bound to your state.

snackbarHost = { SnackbarHost(hostState) }

showSnackbar Is Suspend

The showSnackbar function suspends, because it waits while the message is visible. So you must call it from a coroutine, not directly in a click.

Launch From a Scope

Grab a rememberCoroutineScope and launch showSnackbar inside it. That bridges a normal onClick to the suspend call safely.

scope.launch {
    hostState.showSnackbar("Saved")
}

Add an Action

Pass an actionLabel to add a button, such as Undo. The call returns a result telling you whether the user tapped that action.

val result = hostState.showSnackbar(
    "Deleted", actionLabel = "Undo"
)

React to the Result

Check the returned SnackbarResult. If it equals ActionPerformed, run your undo logic; otherwise the snackbar simply dismissed.

if (result == SnackbarResult.ActionPerformed) {
    restoreItem()
}

Control the Duration

Set how long it lingers with SnackbarDuration: Short, Long, or Indefinite. Use Indefinite only when the message truly needs the user to act.

One Host, Many Messages

A single SnackbarHostState queues messages, showing them one at a time. So share one host per Scaffold rather than creating several.

Quick Check

Why must you launch showSnackbar inside a coroutine scope?

Recap

Remember a SnackbarHostState, wire it into Scaffold's snackbarHost, then launch showSnackbar from a scope. You can finish a polished app shell now. 🎉

Häufig gestellte Fragen

Ist die Lektion „Snackbars und SnackbarHostState“ kostenlos?

Ja — der vollständige Text von „Snackbars und SnackbarHostState“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Jetpack Compose Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Jetpack Compose Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Snackbars und SnackbarHostState“?

Zeigen Sie vorübergehende Nachrichten auf die Material-Art an. Du übst Jetpack Compose Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Jetpack Compose Academy zu starten?

Keine Vorkenntnisse erforderlich. Jetpack Compose Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Snackbars und SnackbarHostState“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Jetpack Compose Academy-Lektion Code schreiben und ausführen?

Ja. Jede Jetpack Compose Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Scaffold: Das Bildschirmskelett
  2. TopAppBar und Aktions-Icons
  3. Untere Leisten und Floating Action Buttons
  4. Snackbars und SnackbarHostState
← Zurück zu Jetpack Compose Academy