Bergabunglah bersama kami di ⁠#Android11: The Beta Launch Show pada tanggal 3 Juni!

Membuat menampilkan pesan pop-up

Anda dapat menggunakan Snackbar untuk menampilkan pesan singkat kepada pengguna. 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 Snackbar dengan menggesernya keluar.
  • Tata letak akan memindahkan beberapa elemen UI lain jika Snackbar muncul. Misalnya, jika memiliki FloatingActionButton, tata letak akan memindahkan tombol ke atas saat menampilkan Snackbar, dan bukan menarik Snackbar ke atas tombol. Anda dapat melihat bagaimana 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 menggunakan objek tata letak lain, hal paling sederhana untuk dilakukan adalah mengemas elemen tata letak yang ada di CoordinatorLayout, seperti 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>

Pastikan untuk menyetel tag android:id untuk CoordinatorLayout Anda. Anda perlu ID tata letak saat menampilkan pesan.

Gambar 1. CoordinatorLayout membuat FloatingActionButton naik 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 tersebut benar-benar menelusuri hingga hierarki tampilan dari tampilan yang diteruskan hingga mencapai CoordinatorLayout atau tampilan konten dekorasi jendela. Biasanya, cara paling sederhana adalah cukup dengan meneruskan CoordinatorLayout yang 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. Ini dapat berupa LENGTH_SHORT atau LENGTH_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 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 hanya 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(). Karenanya, 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();