Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Ringkasan toast

Toast memberikan masukan singkat tentang sebuah operasi melalui jendela pop-up berukuran kecil. Pop-up ini hanya memenuhi ruang yang diperlukan untuk pesan dan aktivitas saat ini tetap terlihat dan interaktif. Toast menghilang otomatis setelah waktu tunggu.

Misalnya, mengklik Kirim di email akan memicu toast "Mengirim pesan...", seperti ditampilkan di screenshot berikut:

Jika pengguna diharapkan merespons pesan status, pertimbangkan untuk menggunakan objek Notification.

Dasar-Dasar

Pertama, jalankan objek Toast dengan salah satu metode makeText(). Metode ini memerlukan tiga parameter: aplikasi Context, pesan teks, dan durasi toast. Metode ini menampilkan objek Toast yang diinisialisasi dengan tepat. Anda dapat menampilkan notifikasi toast dengan show(), seperti ditunjukkan dalam contoh berikut:

Kotlin

    val text = "Hello toast!"
    val duration = Toast.LENGTH_SHORT

    val toast = Toast.makeText(applicationContext, text, duration)
    toast.show()
    

Java

    Context context = getApplicationContext();
    CharSequence text = "Hello toast!";
    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();
    

Contoh ini menunjukkan semua yang Anda perlukan untuk sebagian besar notifikasi toast. Biasanya hal lain tidak diperlukan. Akan tetapi, Anda dapat memosisikan toast secara berbeda atau bahkan menggunakan tata letak Anda sendiri, bukan pesan teks yang singkat. Bagian berikut menjelaskan cara Anda dapat melakukan tindakan ini.

Anda juga dapat mengaitkan metode sendiri dan menghindari penggunaan objek Toast seperti ini:

Kotlin

    Toast.makeText(context, text, duration).show()
    

Java

    Toast.makeText(context, text, duration).show();
    

Memosisikan Toast

Notifikasi toast standar muncul di dekat bagian bawah layar, di tengah secara horizontal. Anda dapat mengubah posisi ini dengan metode setGravity(int, int, int). Metode ini memerlukan tiga parameter: konstanta Gravity, offset posisi x, dan offset posisi y.

Misalnya, jika Anda memutuskan bahwa toast sebaiknya muncul di sudut kiri atas, Anda dapat menyetel gravitasi seperti ini:

Kotlin

    toast.setGravity(Gravity.TOP or Gravity.LEFT, 0, 0)
    

Java

    toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
    

Jika Anda ingin menggeser posisi ke kanan, tingkatkan nilai parameter kedua. Untuk mendorongnya ke bawah, tingkatkan nilai parameter terakhir.

Membuat Tampilan Toast Kustom

Jika pesan teks singkat tidak cukup, Anda dapat membuat tata letak kustom untuk notifikasi toast. Untuk membuat tata letak kustom, tentukan tata letak View, dalam XML atau dalam kode aplikasi Anda, dan teruskan objek View root ke metode setView(View).

Cuplikan berikut berisi tata letak kustom untuk notifikasi toast (disimpan sebagai layout/custom_toast.xml):

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:id="@+id/custom_toast_container"
                  android:orientation="horizontal"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:padding="8dp"
                  android:background="#DAAA"
                  >
        <ImageView android:src="@drawable/droid"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_marginRight="8dp"
                   />
        <TextView android:id="@+id/text"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:textColor="#FFF"
                  />
    </LinearLayout>
    

Perlu diperhatikan bahwa ID elemen LinearLayout adalah "custom_toast_container". Anda harus menggunakan ID ini dan ID file tata letak XML "custom_toast" untuk meluaskan tata letak, seperti ditampilkan di sini:

Kotlin

    val inflater = layoutInflater
    val container: ViewGroup = findViewById(R.id.custom_toast_container)
    val layout: ViewGroup = inflater.inflate(R.layout.custom_toast, container)
    val text: TextView = layout.findViewById(R.id.text)
    text.text = "This is a custom toast"
    with (Toast(applicationContext)) {
        setGravity(Gravity.CENTER_VERTICAL, 0, 0)
        duration = Toast.LENGTH_LONG
        view = layout
        show()
    }
    

Java

    LayoutInflater inflater = getLayoutInflater();
    View layout = inflater.inflate(R.layout.custom_toast,
                    (ViewGroup) findViewById(R.id.custom_toast_container));

    TextView text = (TextView) layout.findViewById(R.id.text);
    text.setText("This is a custom toast");

    Toast toast = new Toast(getApplicationContext());
    toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
    toast.setDuration(Toast.LENGTH_LONG);
    toast.setView(layout);
    toast.show();
    

Pertama, ambil LayoutInflater dengan getLayoutInflater() (atau getSystemService()), lalu luaskan tata letak dari XML menggunakan inflate(int, ViewGroup). Parameter pertama adalah ID resource tata letak dan parameter kedua adalah View root. Anda dapat menggunakan tata letak yang diluaskan ini untuk menemukan objek View lainnya dalam tata letak, jadi sekarang rekam dan tentukan konten untuk elemen ImageView dan TextView. Terakhir, buat Toast baru dengan Toast(Context) dan tetapkan beberapa properti toast, seperti gravitasi dan durasi. Lalu, panggil setView(View) dan teruskan tata letak yang diluaskan ke sana. Sekarang, Anda dapat menampilkan toast dengan tata letak kustom dengan memanggil show().

Catatan: Jangan gunakan constructor publik untuk Toast kecuali jika Anda akan menentukan tata letak dengan setView(View). Jika tidak memiliki tata letak kustom untuk digunakan, Anda harus menggunakan makeText(Context, int, int) untuk membuat Toast.