Ringkasan toast

Toast memberikan masukan singkat tentang operasi dalam pop-up 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 memicu toast "Mengirim pesan...", seperti ditampilkan di screenshot berikut:

Jika respons pengguna terhadap pesan status diperlukan, pertimbangkan untuk menggunakan Notifikasi.

Dasar-Dasar

Pertama, buat instance objek Toast dengan salah satu dari metode makeText(). Metode ini menggunakan tiga parameter: Context aplikasi, pesan teks, dan durasi toast. Metode ini menampilkan objek Toast yang diinisialisasi dengan tepat. Anda dapat menampilkan notifikasi toast dengan show(), seperti ditampilkan di 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. 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, yang terpusat secara horizontal. Anda dapat mengubah posisi ini dengan metode setGravity(int, int, int) . Metode ini menerima tiga parameter: konstanta Gravity, offset posisi x, dan offset posisi y.

Misalnya, jika 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 yang disesuaikan untuk notifikasi toast. Untuk membuat tata letak kustom, tentukan tata letak Tampilan , di XML atau dalam kode aplikasi, dan teruskan objek View ke metode setView(View) .

Cuplikan berikut berisi tata letak yang disesuaikan 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 Tampilan root. Anda dapat menggunakan tata letak yang diluaskan ini untuk menemukan objek Tampilan lainnya dalam tata letak, jadi sekarang rekam dan tentukan konten untuk elemen ImageView dan TextView. Terakhir, buat Toast baru dengan Toast(Context) dan setel beberapa properti toast, seperti gravitasi dan durasi. Lalu, panggil setView(View) dan teruskan ke tata letak yang diluaskan. Anda sekarang dapat menampilkan toast dengan tata letak kustom dengan memanggil show().

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