Snackbar bileşeni ekranda beliren kısa bir bildirim olarak dokunun. Kullanıcı deneyimini kesintiye uğratmadan bir işlem veya işlemle ilgili geri bildirim sağlar. Bilgi çubuğu birkaç saniye sonra kaybolur. Kullanıcı, düğmeye dokunmak gibi bir işlemle de bunları kapatabilir.
Aşağıdaki üç kullanım alanında bilgi çubuğu kullanabilirsiniz:
- İşlem Onayı: Kullanıcı bir e-postayı veya iletiyi sildikten sonra, işlemi onaylamak ve "Geri al" seçeneği sunmak için bir bilgi çubuğu gösterilir.
- Ağ Durumu: Uygulamanın internet bağlantısı kesildiğinde, uygulamanın çevrimdışı olduğunu belirten bir bilgi çubuğu açılır.
- Veri Gönderimi: Bir formu başarıyla gönderdikten veya güncelledikten sonra hızlı bir şekilde kaydedildiğinde, bir atıştırmalık çubuğu, değişikliğin başarıyla kaydedildiğini not eder.
Temel örnek
Snackbar uygulamak için önce SnackbarHost
oluşturursunuz.
SnackbarHostState
mülkü SnackbarHostState
, bilgi çubuğunuz göstermek için kullanabileceğiniz showSnackbar()
işlevine erişim sağlar.
Bu askıya alma işlevi, CoroutineScope
gerektirir. Örneğin:
rememberCoroutineScope
: Kullanıcı arayüzü etkinliklerine yanıt olarak çağrılabilir ve
Scaffold
içinde bir Snackbar
göster.
val scope = rememberCoroutineScope() val snackbarHostState = remember { SnackbarHostState() } Scaffold( snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, floatingActionButton = { ExtendedFloatingActionButton( text = { Text("Show snackbar") }, icon = { Icon(Icons.Filled.Image, contentDescription = "") }, onClick = { scope.launch { snackbarHostState.showSnackbar("Snackbar") } } ) } ) { contentPadding -> // Screen content }
Hareketli Snackbar
İsteğe bağlı bir işlem sağlayabilir ve Snackbar
öğesinin süresini ayarlayabilirsiniz.
snackbarHostState.showSnackbar()
işlevi ek actionLabel
ve duration
parametrelerini kabul eder ve bir SnackbarResult
döndürür.
val scope = rememberCoroutineScope() val snackbarHostState = remember { SnackbarHostState() } Scaffold( snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, floatingActionButton = { ExtendedFloatingActionButton( text = { Text("Show snackbar") }, icon = { Icon(Icons.Filled.Image, contentDescription = "") }, onClick = { scope.launch { val result = snackbarHostState .showSnackbar( message = "Snackbar", actionLabel = "Action", // Defaults to SnackbarDuration.Short duration = SnackbarDuration.Indefinite ) when (result) { SnackbarResult.ActionPerformed -> { /* Handle snackbar action performed */ } SnackbarResult.Dismissed -> { /* Handle snackbar dismissed */ } } } } ) } ) { contentPadding -> // Screen content }
snackbarHost
parametresiyle özel bir Snackbar
sağlayabilirsiniz. Daha fazla bilgi için SnackbarHost
API referans dokümanlarına göz atın.