Kullanıcının mesajınıza yanıt vermesini sağlamak için Snackbar
öğesine 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" iletisine bir geri al düğmesi yerleştirebilir. Kullanıcı geri al düğmesine dokunursa uygulama, e-postayı arşivden geri alır.
Bir Snackbar
mesajına işlem eklemek için View.OnClickListener
arayüzünü uygulayan bir işleyici nesnesi tanımlayın. Kullanıcı mesaj işlemine dokunursa sistem, dinleyicinizin onClick()
yöntemini çağırır. Örneğin, bu snippet bir geri alma işlemi için
dinleyiciyi gösterir:
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. } }
İşleyiciyi Snackbar
cihazınıza eklemek için setAction()
yöntemlerinden birini kullanın. Aşağıdaki kod örneğinde gösterildiği gibi, show()
yöntemini çağırmadan önce işleyiciyi 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") } } ) } } }