Kullanıcının mesajınıza yanıt vermesine izin vermek için Snackbar
'e bir işlem ekleyebilirsiniz. Bunu yaptığınızda Snackbar
, mesaj metninin yanına bir düğme ekler ve kullanıcı düğmeye dokunarak işleminizi tetikleyebilir. Örneğin, bir e-posta uygulaması "e-posta arşivlendi" mesajına bir geri alma düğmesi ekleyebilir. Kullanıcı geri al düğmesine dokunduğunda uygulama, e-postayı arşivden çıkarır.
![Geri alma işlem düğmesi içeren bir bilgi çubuğu gösteren resim](https://developer.android.google.cn/static/images/ui/notifications/action_snackbar_undo.png?authuser=0&hl=tr)
Snackbar
.
Snackbar
mesajına işlem eklemek için View.OnClickListener
arayüzünü uygulayan bir dinleyici nesnesi tanımlayın. Kullanıcı mesaj işlemine dokunursa sistem, dinleyicinizin onClick()
yöntemini çağırır. Örneğin, bu snippet'te geri alma işlemi için bir dinleyici gösterilmektedir:
Kotlin
class MyUndoListener : View.OnClickListener { fun onClick(v: View) { // Code to undo the user's last action. } }
Java
public class MyUndoListener implements View.OnClickListener { @Override public void onClick(View v) { // Code to undo the user's last action. } }
Dinleyiciyi Snackbar
'inize 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:
Kotlin
val mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT) mySnackbar.setAction(R.string.undo_string, MyUndoListener()) mySnackbar.show()
Java
Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT); mySnackbar.setAction(R.string.undo_string, new MyUndoListener()); mySnackbar.show();
SnackbarHost
gösterebilirsiniz:
Kotlin
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") } } ) } } }