Anda dapat menambahkan tindakan ke
Snackbar
agar pengguna dapat merespons pesan Anda. Saat Anda melakukannya, Snackbar akan menempatkan tombol di samping teks pesan, dan pengguna dapat
memicu tindakan Anda dengan mengetuk tombol. Misalnya, aplikasi email dapat menempatkan tombol urungkan pada pesan "email diarsipkan". Jika pengguna mengetuk tombol
urungkan, aplikasi akan mengeluarkan kembali email dari arsip.
Snackbar dengan tombol tindakan urungkan yang
memulihkan item yang dihapus.
Untuk menambahkan tindakan ke pesan Snackbar, tentukan objek pemroses
yang menerapkan
antarmuka
View.OnClickListener. Sistem memanggil metode
onClick()
pemroses Anda jika pengguna mengetuk tindakan pesan. Misalnya, cuplikan ini menunjukkan
pemroses untuk tindakan urungkan:
class MyUndoListener : View.OnClickListener { override fun onClick(v: View) { // Code to undo the user's last action. } }
Gunakan salah satu metode
setAction()
untuk melampirkan pemroses ke Snackbar Anda. Lampirkan
pemroses sebelum Anda memanggil
show(),
seperti yang ditunjukkan dalam contoh kode ini:
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,
seperti yang ditunjukkan dalam contoh berikut:
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") } } ) } } }