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 e-postayı başarıyla gönderdiğini bildirmek için Snackbar
kullanabilir.
CoordinatorLayout kullanma
Bir görünüme Snackbar
eklenir. Snackbar
, View
sınıfından türetilen herhangi bir nesneye (ör. ortak düzen nesnelerinden herhangi biri) eklenirse temel işlevler sağlar. Ancak Snackbar
bir CoordinatorLayout
'e bağlıysa Snackbar
ek özellikler kazanır:
- Kullanıcı,
Snackbar
'ü kaydırarak kapatabilir. Snackbar
göründüğünde düzen diğer kullanıcı arayüzü öğelerini hareket ettirir. Örneğin, düzende birFloatingActionButton
varsa düzen,Snackbar
gösterdiğindeSnackbar
'yi düğmenin üzerine çizmek yerine düğmeyi yukarı taşır. Bu durumun nasıl göründüğünü 1.
CoordinatorLayout
sınıfı, FrameLayout
sınıfının işlevlerinin bir üst kümesini sağlar.
Uygulamanızda zaten bir FrameLayout
kullanılıyorsa Snackbar
işlevinin tümünü 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 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
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
'ü yukarı taşır.
Mesaj görüntüleme
Mesaj 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 söz konusu 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ştururken görüntüleyeceği mesajı ve mesajın gösterilme süresini 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 iletilen görünümden görünüm hiyerarşisini yukarı doğru arar. Normalde, içeriğinizi kapsayanCoordinatorLayout
öğesini iletmek daha kolaydır. - stringId
- 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österme
Snackbar
öğesini oluşturduktan sonra, Snackbar
öğesini kullanıcıya 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 şu anda başka bir Snackbar
gösteriliyorsa sistem, Snackbar
'nizi sıraya alır ve mevcut Snackbar
'nin süresi dolduktan veya reddedildikten sonra gösterir.
Kullanıcıya bir mesaj göstermek istiyorsanız ve Snackbar
nesnesinin yardımcı yöntemlerinden hiçbirini çağırmanız gerekmiyorsa show()
'ü çağırdıktan sonra Snackbar
referansını tutmanız gerekmez. Bu nedenle, tek bir ifadede Snackbar
oluşturmak ve göstermek için yöntem zincirleme kullanmak yaygındı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();