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.
SnackBar → 'nı inceleyin.

URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Snackbar - kullanıcıya kısa bir mesaj görüntüleyecektir. Beğenmeyi kaldır Bildirimler, Mesaj kısa bir süre sonra otomatik olarak kaybolur. Snackbar, veya kullanıcının işlem yapmasına gerek olmayan kısa mesajlar için idealdir. Örneğin, e-posta uygulaması, bir Snackbar kullanarak kullanıcıya uygulamanın başarıyla e-posta gönderdi.

CoordinatorLayout kullanma

Bir görünüme Snackbar eklenmiş. Snackbar değişkeninden türetilen herhangi bir nesneye eklenmesi durumunda, View sınıf, örneğin ortak düzen nesnelerinden herhangi biri. Ancak Snackbar ekli CoordinatorLayout, Snackbar ek özellikler kazanıyor:

  • 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 bir FloatingActionButton, Düzen, bunun yerine bir Snackbar görüntülediğinde düğmeyi yukarı taşır üzerine Snackbar çizin. Web sitemiz g.co/newsinitiative/labs üzerinden Şekil 1'de görüldüğü gibidir.

CoordinatorLayout sınıfı, işlevi FrameLayout. Uygulamanızda zaten FrameLayout kullanılıyorsa bu düzeni değiştirebilirsiniz Tüm Snackbar özelliğini etkinleştirmek için CoordinatorLayout ile işlevi görür. Uygulamanız başka düzen nesneleri kullanıyorsa mevcut düzeninizi sarmalayın aşağıda gösterildiği gibi bir CoordinatorLayout içindeki öğeler örnek:

<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. CoordinatorLayout, Snackbar göründüğünde FloatingActionButton artar.

Mesaj görüntüleme

Bir mesaj iki adımda görüntülenebilir. İlk olarak, Mesaj metnini içeren Snackbar nesnesi. Sonra bu nesnenin show(). yöntemini kullanabilirsiniz.

Snackbar nesnesi oluşturma

Statik öğeyi çağırarak bir Snackbar nesnesi oluşturun Snackbar.make() yöntemidir. Snackbar öğesini oluştururken mesajı belirtin mesajının gösterileceği süreyi belirtir:

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. Bu yöntem görünüm hiyerarşisini, iletilen görünümden CoordinatorLayout veya pencere dekorasyonunun içerik görünümünü seçin. Normalde, CoordinatorLayout içeriğinizi dahil edin.
dize kimliği
. Görüntülemek istediğiniz mesajın kaynak kimliği. Bu kısım biçimlendirilmiş veya biçimlendirilmemiş metin.
süre
. Mesajın gösterileceği süre. Bu özellik, LENGTH_SHORT. veya LENGTH_LONG.

Mesajı kullanıcıya göster

Snackbar öğesini oluşturduktan sonra show() işlevini çağırın Snackbar öğesini kullanıcıya gösterme yöntemi:

Kotlin

mySnackbar.show()

Java

mySnackbar.show();

Sistem aynı anda birden fazla Snackbar nesnesi göstermiyor Bu nedenle, görünümde şu anda başka bir Snackbar görüntüleniyorsa sistem, Snackbar öğenizi sıraya alır ve geçerli Snackbar aboneliğinin süresi doluyor veya kapatıldı.

Kullanıcıya bir mesaj göstermek istiyorsanız ve Snackbar nesnesinin yardımcı program yöntemleri için kullandığında show() çağrısından sonra Snackbar referansı. Örneğin, Bu nedenle, bir proje hedefini oluşturmak ve göstermek için Bir ifadede Snackbar:

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