Kullanıcının mesajınıza yanıt vermesini sağlamak için Snackbar simgesine bir işlem ekleyebilirsiniz. Bunu yaptığınızda Snackbar, mesaj metninin yanına bir düğme yerleştirir ve kullanıcı, düğmeye dokunarak işleminizi tetikleyebilir. Örneğin, bir e-posta uygulaması, "E-posta arşivlendi" mesajına geri al düğmesi ekleyebilir. Kullanıcı geri al düğmesine dokunursa uygulama, e-postayı arşivden çıkarır.
Snackbar.
Snackbar mesajına işlem eklemek için View.OnClickListener arayüzünü uygulayan bir dinleyici nesnesi tanımlayın. Kullanıcı önerilen mesaj işlemine dokunursa sistem, işleyicinizin onClick() yöntemini çağırır. Örneğin, aşağıdaki snippet'te geri alma işlemi için bir dinleyici gösterilmektedir:
class MyUndoListener : View.OnClickListener { override fun onClick(v: View) { // Code to undo the user's last action. } }
İşleyiciyi Snackbar öğenize eklemek için setAction() yöntemlerinden birini kullanın. Bu kod örneğinde gösterildiği gibi, show() işlevini çağırmadan önce dinleyiciyi ekleyin:
val mySnackbar = Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT ) mySnackbar.setAction(R.string.undo_string, MyUndoListener()) mySnackbar.show()
SnackbarHost gösterebilirsiniz:
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { DACPlaygroundTheme { val snackbarHostState = remember { SnackbarHostState() } val scope = rememberCoroutineScope() Scaffold( snackbarHost = { SnackbarHost(snackbarHostState) }, content = { padding -> Button( modifier = Modifier.padding(padding), onClick = { scope.launch { snackbarHostState.showSnackbar( message = "1 item removed", actionLabel = "UNDO", duration = SnackbarDuration.Short ).run { when (this) { Dismissed -> Log.d("SNACKBAR", "Dismissed") ActionPerformed -> Log.d("SNACKBAR", "UNDO CLICKED") } } } } ) { Text("Show snackbar") } } ) } } }