Pop-up mesajı oluşturma ve görüntüleme

"Oluştur" yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose'da nasıl bildirim ekleyeceğinizi öğrenin.

Kullanıcıya kısa bir mesaj göstermek için Snackbar kullanabilirsiniz. Bildirimler'in aksine mesaj kısa bir süre sonra otomatik olarak kaybolur. Snackbar, kullanıcının işlem yapmasına gerek olmayan kısa mesajlar için idealdir. Örneğin, bir e-posta uygulamasında Snackbar kullanarak kullanıcıya uygulamanın başarıyla e-posta gönderdiğini bildirebilirsiniz.

CoordinatorLayout kullanma

Bir görünüme Snackbar eklenmiş. Snackbar, View sınıfından türetilen herhangi bir nesneye (ör. genel düzen nesnelerinden herhangi biri) eklenmişse temel işlevleri sağlar. Ancak Snackbar, bir CoordinatorLayout öğesine eklenirse Snackbar ek özellikler kazanır:

  • Kullanıcı Snackbar öğesini hızlıca kaydırıp kapatabilir.
  • Snackbar göründüğünde düzen diğer kullanıcı arayüzü öğelerini taşır. Örneğin, düzende FloatingActionButton varsa düzen, Snackbar simgesi gösterildiğinde düğmenin üstüne Snackbar çizmek yerine düğmeyi yukarı taşır. Bunun nasıl göründüğünü Şekil 1'de görebilirsiniz.

CoordinatorLayout sınıfı, FrameLayout işlevlerinin üst kümesini sağlar. Uygulamanızda zaten FrameLayout kullanılıyorsa bu düzeni CoordinatorLayout ile değiştirerek tüm Snackbar işlevini etkinleştirebilirsiniz. Uygulamanız başka düzen nesneleri kullanıyorsa mevcut düzen öğelerinizi aşağıdaki örnekte gösterildiği gibi bir CoordinatorLayout içine yerleştirin:

<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>

CoordinatorLayout cihazınız için bir android:id etiketi ayarlayın. Mesajı görüntülerken düzenin kimliğine ihtiyacınız vardır.

Şekil 1. Snackbar göründüğünde CoordinatorLayout, FloatingActionButton öğesini yukarı taşır.

Mesaj görüntüleme

Bir mesaj iki adımda görüntülenebilir. Öncelikle mesaj metnini içeren bir Snackbar nesnesi oluşturun. Ardından, mesajı kullanıcıya görüntülemek için bu nesnenin show() yöntemini çağırırsınız.

Snackbar nesnesi oluşturma

Statik Snackbar.make() yöntemini çağırarak bir Snackbar nesnesi oluşturun. Snackbar öğesini oluşturduğunuzda gösterilecek mesajı ve mesajın ne kadar süreyle gösterileceğini belirtin:

Kotlin

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

Java

Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
görüntüleme
Snackbar öğesinin ekleneceği görünüm. Yöntem, geçen görünümden CoordinatorLayout veya pencere dekorasyonunun içerik görünümüne ulaşana kadar görünüm hiyerarşisinde arama yapar. Normalde, içeriğinizi kapsayan CoordinatorLayout öğesini iletmek daha basittir.
dize kimliği
Görüntülemek istediğiniz mesajın kaynak kimliği. Bu, biçimlendirilmiş veya biçimlendirilmemiş metin olabilir.
süre
Mesajın gösterileceği süre. Bu, LENGTH_SHORT veya LENGTH_LONG olabilir.

Mesajı kullanıcıya göster

Snackbar öğesini oluşturduktan sonra, kullanıcıya Snackbar öğesini göstermek için show() yöntemini çağırın:

Kotlin

mySnackbar.show()

Java

mySnackbar.show();

Sistem aynı anda birden fazla Snackbar nesnesi göstermez. Bu nedenle, görünümde başka bir Snackbar gösteriliyorsa sistem, Snackbar öğenizi sıraya alır ve mevcut Snackbar sona erdikten veya kapatıldıktan sonra gösterir.

Kullanıcıya bir mesaj göstermek istiyorsanız ve Snackbar nesnesinin yardımcı program yöntemlerinden birini çağırmanız gerekmiyorsa show() çağrısından sonra Snackbar referansını saklamanız gerekmez. Bu nedenle, bir ifadede Snackbar oluşturmak ve bunu göstermek için yöntem zinciri kullanmak yaygın bir uygulamadır:

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();