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. Snackbargöründüğünde düzen diğer kullanıcı arayüzü öğelerini hareket ettirir. Örneğin, düzende birFloatingActionButtonvarsa düzen,Snackbargö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, birCoordinatorLayoutveya 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_SHORTveyaLENGTH_LONGolabilir.
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();