Kullanıcıya kısa bir mesaj göstermek için Snackbar kullanabilirsiniz. Bildirimlerden farklı olarak, 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ı, uygulamada e-posta gönderme işleminin başarılı olduğunu kullanıcıya bildirmek için Snackbar simgesini 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 nesneleri) 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. Bu durumun nasıl göründüğünü Şekil 1'de görebilirsiniz.
CoordinatorLayout sınıfı, FrameLayout sınıfının işlevlerinin üst kümesini sağlar.
Uygulamanızda zaten FrameLayout kullanılıyorsa Snackbar işlevlerinin 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:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myCoordinatorLayout" 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> </androidx.coordinatorlayout.widget.CoordinatorLayout>
CoordinatorLayout için bir android:id etiketi ayarlayın.
İletiyi gösterirken düzenin kimliğine ihtiyacınız vardır.
Şekil 1. CoordinatorLayout, Snackbar göründüğünde FloatingActionButton simgesini 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 yöntemini çağırarak Snackbar.make() nesnesi oluşturun. Snackbar oluşturduğunuzda, gösterilecek mesajı ve mesajın gösterileceği süreyi belirtin:
val 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 kapsayanCoordinatorLayoutgeçirmek 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, show()
yöntemini çağırarak Snackbar öğesini kullanıcıya gösterin:
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 nesnesinin süresi dolduktan veya kapatıldıktan sonra 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:
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()