Anda dapat menggunakan
Snackbar untuk
menampilkan pesan singkat kepada pengguna. Tidak seperti
Notifikasi, pesan akan otomatis hilang setelah beberapa saat. Snackbar ideal untuk pesan singkat yang tidak memerlukan interaksi pengguna. Misalnya, aplikasi email dapat menggunakan Snackbar untuk memberi tahu pengguna bahwa aplikasi tersebut berhasil mengirimkan email.
Menggunakan CoordinatorLayout
Snackbar dilampirkan ke tampilan. Snackbar menyediakan fungsionalitas dasar jika dilampirkan ke objek apa pun yang berasal dari class View, seperti salah satu objek tata letak umum. Namun, jika Snackbar dilampirkan ke CoordinatorLayout, Snackbar mendapatkan fitur tambahan:
- Pengguna dapat menutup
Snackbardengan menggesernya keluar. - Tata letak akan memindahkan elemen UI lain saat
Snackbarmuncul. Misalnya, jika tata letak memilikiFloatingActionButton, tata letak akan memindahkan tombol ke atas saat menampilkanSnackbar, dan bukan menarikSnackbarke atas tombol. Anda dapat melihat tampilannya pada gambar 1.
Class CoordinatorLayout menyediakan superset fungsionalitas FrameLayout.
Jika aplikasi Anda sudah menggunakan FrameLayout, Anda dapat mengganti tata letak tersebut dengan CoordinatorLayout untuk mengaktifkan fungsionalitas Snackbar yang lengkap. Jika aplikasi Anda menggunakan objek tata letak lain, kemas elemen tata letak yang ada di CoordinatorLayout, seperti yang ditunjukkan pada contoh berikut:
<android.support.design.widget.CoordinatorLayout android:id="@+id/myCoordinatorLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in a CoordinatorLayout. --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ...Toolbar, other layouts, other elements... --> </LinearLayout> </android.support.design.widget.CoordinatorLayout>
Tetapkan tag android:id untuk CoordinatorLayout Anda.
Anda memerlukan ID tata letak saat menampilkan pesan.
Gambar 1. CoordinatorLayout memindahkan
FloatingActionButton ke atas saat Snackbar muncul.
Menampilkan pesan
Ada dua langkah untuk menampilkan pesan. Pertama, buat objek
Snackbar dengan teks pesan. Kemudian, panggil metode
show()
objek untuk menampilkan pesan kepada pengguna.
Membuat objek Snackbar
Buat objek Snackbar dengan memanggil metode
Snackbar.make()
statis. Saat Anda membuat Snackbar, tentukan pesan yang ditampilkannya dan lama waktu untuk menampilkan pesan:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- lihat
-
Tampilan untuk melampirkan
Snackbar. Metode ini menelusuri hierarki tampilan dari tampilan yang diteruskan hingga mencapaiCoordinatorLayoutatau tampilan konten dekorasi jendela. Biasanya, cara paling sederhana adalah meneruskanCoordinatorLayoutyang menyertakan konten Anda. - stringId
- ID resource pesan yang ingin Anda tampilkan. Ini dapat berupa teks berformat atau tidak berformat.
- durasi
-
Lamanya waktu untuk menampilkan pesan. Nilainya dapat berupa
LENGTH_SHORTatauLENGTH_LONG.
Menampilkan pesan kepada pengguna
Setelah membuat Snackbar, panggil metode show()-nya untuk menampilkan Snackbar kepada pengguna:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
Sistem tidak menampilkan beberapa objek Snackbar secara bersamaan, sehingga jika tampilan saat ini menampilkan Snackbar lain, sistem akan mengantrekan Snackbar Anda dan menampilkannya setelah Snackbar saat ini habis masa berlakunya atau sudah ditutup.
Jika Anda ingin menampilkan pesan kepada pengguna dan tidak perlu memanggil salah satu metode utilitas objek Snackbar, Anda tidak perlu menyimpan referensi ke Snackbar setelah Anda memanggil show(). Oleh karena itu, perantaian metode sering digunakan untuk membuat dan menampilkan
Snackbar dalam satu pernyataan:
Kotlin
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Java
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();