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

Ringkasan toast

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

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

Toast tidak dapat diklik. Jika pengguna diharapkan merespons pesan status, pertimbangkan untuk menggunakan Notifikasi.

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 diperlukan untuk sebagian besar notifikasi toast. Biasanya hal lain tidak diperlukan. Namun, 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 mendorong 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 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. Setelah itu, panggil setView(View) dan teruskan tata letak yang diluaskan ke sana. Sekarang, Anda dapat menampilkan toast menggunakan tata letak kustom dengan memanggil show().

Catatan: Jangan gunakan konstruktor 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.