Membuat dan menampilkan pesan pop-up

Coba cara Compose
Jetpack Compose adalah toolkit UI yang direkomendasikan untuk Android. Pelajari cara menambahkan notifikasi di Compose.

Anda dapat menggunakan Snackbar untuk menampilkan pesan singkat kepada pengguna. Tidak seperti Notifikasi, pesan akan otomatis hilang setelah beberapa saat. Snackbar sangat ideal untuk pesan singkat yang tidak perlu ditindaklanjuti oleh 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 objek tata letak umum. Namun, jika Snackbar dilampirkan ke CoordinatorLayout, Snackbar akan mendapatkan fitur tambahan:

  • Pengguna dapat menutup Snackbar dengan menggesernya.
  • Tata letak akan memindahkan elemen UI lainnya saat Snackbar muncul. Misalnya, jika tata letak memiliki FloatingActionButton, tata letak akan memindahkan tombol ke atas saat menampilkan Snackbar, bukan menarik Snackbar ke atas tombol. Anda dapat melihat tampilannya pada gambar 1.

Class CoordinatorLayout menyediakan superset fungsi FrameLayout. Jika aplikasi sudah menggunakan FrameLayout, Anda dapat mengganti tata letak tersebut dengan CoordinatorLayout untuk mengaktifkan fungsi Snackbar lengkap. Jika aplikasi Anda menggunakan objek tata letak lain, gabungkan elemen tata letak yang ada di CoordinatorLayout, seperti ditunjukkan dalam 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 akan 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 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 akan ditampilkan dan lama waktu pesan ditampilkan:

Kotlin

val mySnackbar = Snackbar.make(view, stringId, duration)

Java

Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
kali dilihat
Tampilan untuk melampirkan Snackbar. Metode ini menelusuri hierarki tampilan dari tampilan yang diteruskan hingga mencapai CoordinatorLayout atau tampilan konten dekorasi jendela. Biasanya, lebih mudah untuk meneruskan CoordinatorLayout 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. Ini dapat berupa LENGTH_SHORT atau LENGTH_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 sekaligus, jadi jika tampilan saat ini menampilkan Snackbar lain, sistem akan mengantrekan Snackbar dan menampilkannya setelah Snackbar saat ini berakhir atau 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 alasan ini, penggunaan perantaian metode adalah hal yang umum 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();