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
berhasil mengirim email.
Menggunakan CoordinatorLayout
Snackbar
dilampirkan ke tampilan. Snackbar
menyediakan fungsi 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
akan mendapatkan fitur tambahan:
- Pengguna dapat menutup
Snackbar
dengan menggesernya keluar. - Tata letak akan memindahkan elemen UI lain saat
Snackbar
muncul. Misalnya, jika tata letak memilikiFloatingActionButton
, tata letak akan memindahkan tombol ke atas saat menampilkanSnackbar
, dan bukan menggambarSnackbar
di atas tombol. Anda dapat melihat tampilannya pada gambar 1.
Class CoordinatorLayout
menyediakan superset dari
fungsi
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, gabungkan elemen tata letak
yang ada dalam 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, Anda memanggil metode
show()
objek tersebut 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 mencapaiCoordinatorLayout
atau tampilan konten dekorasi jendela. Biasanya, cara paling sederhana adalah meneruskanCoordinatorLayout
yang menyertakan konten Anda. - stringId
- ID resource pesan yang ingin Anda tampilkan. Ini dapat berupa teks berformat atau tidak berformat.
- tonton
-
Lamanya waktu untuk menampilkan pesan. Nilai ini dapat berupa
LENGTH_SHORT
atauLENGTH_LONG
.
Menampilkan pesan kepada pengguna
Setelah Anda 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 ingin menampilkan pesan kepada pengguna dan tidak perlu memanggil salah satu metode utilitas objek Snackbar
, Anda tidak perlu menyimpan referensi ke Snackbar
setelah memanggil show()
. Karena
hal ini, menggunakan perantaian metode untuk membuat dan menampilkan
Snackbar
dalam satu pernyataan adalah hal yang biasa:
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();