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

Oluşturma 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ı gerekmeyen kısa mesajlar için idealdir. Örneğin, bir e-posta uygulaması, kullanıcıya başarıyla bir e-posta gönderdiğini bildirmek için Snackbar kullanabilir.

CoordinatorLayout kullanma

Bir görünüme Snackbar eklenmiş. Snackbar, ortak düzen nesnelerinden herhangi biri gibi View sınıfından türetilen herhangi bir nesneye eklenmişse temel işlevleri sağlar. Ancak Snackbar bir CoordinatorLayout öğesine eklenmişse Snackbar ek özelliklere sahip olur:

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

CoordinatorLayout sınıfı, FrameLayout işlevinin üst kümesini sağlar. Uygulamanızda zaten bir FrameLayout kullanılıyorsa Snackbar işlevini tam olarak etkinleştirmek için bu düzeni CoordinatorLayout ile değiş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 sarmalayın:

<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üzen kimliğine ihtiyacınız vardır.

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

Mesaj gösterin

Bir iletiyi görüntülemenin iki adımı vardır. Öncelikle mesaj metnini içeren bir Snackbar nesnesi oluşturursunuz. Ardından, mesajı kullanıcıya göstermek 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östereceği mesajı ve mesajın gösterileceği süreyi 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, bir CoordinatorLayout veya pencere dekorunun içerik görünümüne ulaşana kadar, geçirilen görünümden görünüm hiyerarşisinde arama yapar. Normalde içeriğinizi çevreleyen CoordinatorLayout öğesini iletmek daha basittir.
dizeKimliğ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 değer, LENGTH_SHORT veya LENGTH_LONG olabilir.

Kullanıcıya mesajı gösterin

Snackbar öğesini oluşturduktan sonra, Snackbar öğesini kullanıcıya görüntülemek için öğenin 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örüntüleniyorsa sistem Snackbar öğenizi sıraya alır ve geçerli Snackbar öğesinin süresi dolduktan veya kapatıldıktan sonra görüntüler.

Kullanıcıya bir mesaj göstermek istiyorsanız ve Snackbar nesnesinin yardımcı program yöntemlerinden herhangi birini çağırmanız gerekmiyorsa show() öğesini çağırdıktan sonra Snackbar referansını tutmanız gerekmez. Bu nedenle, bir ifadede Snackbar oluşturup göstermek için zincirleme yöntem 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();