Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Snackbar bileşeni, ekranın alt kısmında görünen kısa bir bildirim olarak işlev görür. Kullanıcı deneyimini kesintiye uğratmadan bir işlem veya eylem hakkında geri bildirim sağlar. Snackbar'lar birkaç saniye sonra kaybolur. Kullanıcı, bir düğmeye dokunmak gibi bir işlemle de bunları kapatabilir.
Aşağıdaki üç kullanım alanında snackbar kullanabilirsiniz:
İşlem Onayı: Bir kullanıcı e-posta veya ileti sildikten sonra işlemi onaylamak ve "Geri al" seçeneği sunmak için bir snackbar gösterilir.
Ağ Durumu: Uygulamanın internet bağlantısı kesildiğinde çevrimdışı olduğunu belirten bir snackbar açılır.
Veri Gönderme: Bir form başarıyla gönderildiğinde veya ayarlar güncellendiğinde, değişikliklerin başarıyla kaydedildiğini belirten bir snackbar gösterilir.
1. Şekil. Snackbar örnekleri.
Temel örnek
Snackbar uygulamak için önce SnackbarHost oluşturursunuz. Bu, SnackbarHostState özelliğini içerir. SnackbarHostState, snackbar'ınızı göstermek için kullanabileceğiniz showSnackbar() işlevine erişim sağlar.
Bu askıya alma işlevi, rememberCoroutineScope kullanma gibi bir CoroutineScope gerektirir ve Scaffold içinde Snackbar göstermek için kullanıcı arayüzü etkinliklerine yanıt olarak çağrılabilir.
İsteğe bağlı bir işlem sağlayabilir ve Snackbar süresini ayarlayabilirsiniz.
snackbarHostState.showSnackbar() işlevi ek actionLabel ve duration parametrelerini kabul eder ve SnackbarResult döndürür.
valscope=rememberCoroutineScope()valsnackbarHostState=remember{SnackbarHostState()}Scaffold(snackbarHost={SnackbarHost(hostState=snackbarHostState)},floatingActionButton={ExtendedFloatingActionButton(text={Text("Show snackbar")},icon={Icon(Icons.Filled.Image,contentDescription="")},onClick={scope.launch{valresult=snackbarHostState.showSnackbar(message="Snackbar",actionLabel="Action",// Defaults to SnackbarDuration.Shortduration=SnackbarDuration.Indefinite)when(result){SnackbarResult.ActionPerformed->{/* Handle snackbar action performed */}SnackbarResult.Dismissed->{/* Handle snackbar dismissed */}}}})}){contentPadding->
// Screen content}
withDismissAction = true: Snack çubuğunda çarpı işareti gösterir. Snackbar'ı kapatmak için bu simgeye dokunun.
duration = SnackbarDuration.Indefinite: Kullanıcı veya program kapatana kadar
snackbar'ı görüntülemeye devam eder.
SnackbarResult.ActionPerformed: Kullanıcının snackbar'ın işlem düğmesini tıkladığını gösterir.
SnackbarResult.Dismissed: Kullanıcının, işlem düğmesini tıklamadan snackbar'ı kapattığını gösterir.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-28 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-08-28 UTC."],[],[],null,["The [snackbar component](https://m3.material.io/components/snackbar/overview) serves as a brief notification that appears at the\nbottom of the screen. It provides feedback about an operation or action without\ninterrupting the user experience. Snackbars disappear after a few seconds. The\nuser can also dismiss them with an action, such as tapping a button.\n\nConsider these three use cases where you might use a snackbar:\n\n- **Action Confirmation:** After a user deletes an email or message, a snackbar appears to confirm the action and offer an \"Undo\" option.\n- **Network Status:** When the app loses its internet connection, a snackbar pops up to note that it is now offline.\n- **Data Submission:** Upon successfully submitting a form or updating settings, a snackbar notes that the change has saved successfully.\n\n**Figure 1.** Snackbar examples.\n\nBasic example\n\nTo implement a snackbar, you first create [`SnackbarHost`](/reference/kotlin/androidx/compose/material3/package-summary#SnackbarHost(androidx.compose.material3.SnackbarHostState,androidx.compose.ui.Modifier,kotlin.Function1)), which includes a\n[`SnackbarHostState`](/reference/kotlin/androidx/compose/material3/SnackbarHostState) property. `SnackbarHostState` provides access to the\n[`showSnackbar()`](/reference/kotlin/androidx/compose/material3/SnackbarHostState#showsnackbar) function which you can use to display your snackbar.\n\nThis suspending function requires a `CoroutineScope` such as with using\n[`rememberCoroutineScope`](/reference/kotlin/androidx/compose/runtime/package-summary#remembercoroutinescope) --- and can be called in response to UI events to\nshow a [`Snackbar`](/reference/kotlin/androidx/compose/material3/package-summary#snackbar) within `Scaffold`.\n\n\n```kotlin\nval scope = rememberCoroutineScope()\nval snackbarHostState = remember { SnackbarHostState() }\nScaffold(\n snackbarHost = {\n SnackbarHost(hostState = snackbarHostState)\n },\n floatingActionButton = {\n ExtendedFloatingActionButton(\n text = { Text(\"Show snackbar\") },\n icon = { Icon(Icons.Filled.Image, contentDescription = \"\") },\n onClick = {\n scope.launch {\n snackbarHostState.showSnackbar(\"Snackbar\")\n }\n }\n )\n }\n) { contentPadding -\u003e\n // Screen content\n}https://github.com/android/snippets/blob/7a0ebbee11495f628cf9d574f6b6069c2867232a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/MaterialLayoutSnippets.kt#L218-L240\n```\n\n\u003cbr /\u003e\n\nSnackbar with action\n\nYou can provide an optional action and adjust the duration of the `Snackbar`.\nThe `snackbarHostState.showSnackbar()` function accepts additional `actionLabel`\nand `duration` parameters, and returns a [`SnackbarResult`](/reference/kotlin/androidx/compose/material3/SnackbarResult).\n\n\n```kotlin\nval scope = rememberCoroutineScope()\nval snackbarHostState = remember { SnackbarHostState() }\nScaffold(\n snackbarHost = {\n SnackbarHost(hostState = snackbarHostState)\n },\n floatingActionButton = {\n ExtendedFloatingActionButton(\n text = { Text(\"Show snackbar\") },\n icon = { Icon(Icons.Filled.Image, contentDescription = \"\") },\n onClick = {\n scope.launch {\n val result = snackbarHostState\n .showSnackbar(\n message = \"Snackbar\",\n actionLabel = \"Action\",\n // Defaults to SnackbarDuration.Short\n duration = SnackbarDuration.Indefinite\n )\n when (result) {\n SnackbarResult.ActionPerformed -\u003e {\n /* Handle snackbar action performed */\n }\n SnackbarResult.Dismissed -\u003e {\n /* Handle snackbar dismissed */\n }\n }\n }\n }\n )\n }\n) { contentPadding -\u003e\n // Screen content\n}https://github.com/android/snippets/blob/7a0ebbee11495f628cf9d574f6b6069c2867232a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/MaterialLayoutSnippets.kt#L247-L283\n```\n\n\u003cbr /\u003e\n\nYou can provide a custom `Snackbar` with the `snackbarHost` parameter. See the\n[`SnackbarHost` API reference docs](/reference/kotlin/androidx/compose/material/package-summary#snackbarhost) for more information.\n\nKey points\n\n- `actionLabel = \"Action\"`: Sets the action button text.\n- `withDismissAction = true`: Provides a cross in the snackbar. Tap it to dismiss the snackbar.\n- `duration = SnackbarDuration.Indefinite`: Keeps the snackbar displayed until the user or program dismisses it.\n- `SnackbarResult.ActionPerformed`: Signifies that the user clicked the snackbar's action button.\n- `SnackbarResult.Dismissed`: Signifies that the user dismissed the snackbar without clicking the action button."]]