Kullanıcıya kısa bir mesaj göstermek için Snackbar kullanabilirsiniz. Bildirimlerin 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-postanın başarıyla gönderildiğini bildirmek için Snackbar kullanabilir.
CoordinatorLayout kullanma
Bir görünüme Snackbar eklenir. Snackbar, View sınıfından türetilmiş herhangi bir nesneye (ör. ortak düzen nesnelerinden herhangi biri) eklenirse temel işlevsellik sağlar. Ancak Snackbar, CoordinatorLayout'e bağlıysa Snackbar ek özellikler kazanır:
- Kullanıcı,
Snackbarsimgesini kaydırarak kapatabilir. Snackbarsimgesi göründüğünde düzende diğer kullanıcı arayüzü öğeleri hareket eder. Örneğin, düzende birFloatingActionButtonvarsa düzen,Snackbaröğesini düğmenin üzerine çizmek yerineSnackbargösterdiğinde düğmeyi yukarı taşır. Bunun nasıl göründüğünü 1. şekilde görebilirsiniz.
CoordinatorLayout sınıfı, FrameLayout işlevlerinin üst kümesini sağlar.
Uygulamanızda zaten bir FrameLayout kullanılıyorsa Snackbar işlevinin tamamını etkinleştirmek için bu düzeni CoordinatorLayout ile değiştirebilirsiniz. Uygulamanızda başka düzen nesneleri kullanılıyorsa mevcut düzen öğelerinizi aşağıdaki örnekte gösterildiği gibi CoordinatorLayout içine alı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 için bir android:id etiketi ayarlayın.
Mesajı gösterirken düzenin kimliğine ihtiyacınız vardır.
Şekil 1. CoordinatorLayout, Snackbar göründüğünde FloatingActionButton yukarı taşır.
Mesaj görüntüleme
Mesaj görüntülemenin iki adımı vardır. İlk olarak 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 Snackbar nesnesi oluşturun. Snackbar oluşturduğunuzda, gösterilecek 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öster
-
Snackbaröğesinin ekleneceği görünüm. Bu yöntem, iletilen görünümden başlayarak görünüm hiyerarşisindeCoordinatorLayoutveya pencere dekorunun içerik görünümüne ulaşana kadar arama yapar. 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 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 nesnenizi sıraya alır ve geçerli Snackbar nesnesi sona erdiğinde veya kapatıldığında gösterir.
Kullanıcıya bir mesaj göstermek istiyorsanız ve Snackbar nesnesinin yardımcı yöntemlerinden herhangi birini çağırmanız gerekmiyorsa show() yöntemini çağırdıktan sonra Snackbar nesnesine yapılan referansı saklamanız gerekmez. Bu nedenle, tek bir ifadede Snackbar oluşturup 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();