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 birFloatingActionButton
varsa düzen,Snackbar
öğesini düğmenin üstüne çizmek yerine birSnackbar
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.
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, birCoordinatorLayout
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 çevreleyenCoordinatorLayout
öğ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
veyaLENGTH_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();