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üzendeFloatingActionButton
varsa düzen,Snackbar
simgesi gösterildiğinde düğmenin üstüneSnackbar
ç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.
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ümdenCoordinatorLayout
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 kapsayanCoordinatorLayout
öğ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
veyaLENGTH_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();