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.

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:
class MyUndoListener : View.OnClickListener { fun onClick(v: View) { // Code to undo the user's last action. } }
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:
val mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT) mySnackbar.setAction(R.string.undo_string, MyUndoListener()) mySnackbar.show()
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:
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") } } ) } } }