Android - Snackbar ve Tost - kullanım ve fark


104

Şu ana kadar uygulamamızda sadece Toast kullanıyorduk ve Support Design Library'den bazı yeni özellikleri benimsemeyi planladığımız için Snackbar ve Toast için önerilen kullanımın ne olduğunu merak ediyorum.

Google malzeme snackbar belgesini okuyordum .

Snackbarlar, mobil cihazlarda ekranın altında ve sol altta masaüstünde küçük bir açılır pencerede işlem hakkında hafif geri bildirim sağlar. Bunlar, FAB dahil olmak üzere ekrandaki her şeyin üzerindedir.

ve tost.

Android ayrıca, öncelikle sistem mesajlaşması için kullanılan kapsül şeklinde bir tost sağlar. Tostlar atıştırmalık çubuklarına benzer, ancak eylem içermez ve ekran dışına kaydırılamaz.

Ne yaptıklarını anlıyorum ama ne zaman ne kullanacağım biraz kafam karıştı. Bu şu anlama mı geliyor:

  • Kullanıcı etkileşimine ihtiyacım yoksa kadeh kaldırır mıyım?
  • "Sistem mesajlaşması" ile kastedilen nedir? Bu, uygulamam ve Android sistemi arasında önemli bir şey olduğunda bilgilerin görüntülenmesi için geçerli midir?
  • Sevdiğim şey, ekran dışına kaydır özelliğidir - bu, tostları atıştırmalık çubuklarıyla değiştirmeye başlamak için bir neden olur mu? (bu biraz fikir temelli bir soru olsa da)

Bu bağlantı artık çalışmıyor. Belki de bu materyal.io/guidelines/components/snackbars-toasts.html kullanılmalıdır ?
Vadim Kotov

Yanıtlar:


109

Kullanıcı etkileşimine ihtiyacım yoksa kadeh kaldırır mıyım?

Yine de Snackbar'ı kullanabilirsiniz. Snackbar ile işlem yapmak zorunlu değildir.

"Sistem mesajlaşması" ile kastedilen nedir? Bu, uygulamam ve Android sistemi arasında önemli bir şey olduğunda bilgilerin görüntülenmesi için geçerli midir?

Bunun, sistemle ilgili bazı mesajlar varsa Toastların kullanılması gerektiği anlamına geldiğine inanıyorum. Ya bir bütün olarak android ya da bazı arka plan hizmeti çalışıyor olabilir. Örneğin Text-To-Speech is not installed.VEYANo Email client found.

Sevdiğim şey ekran dışına kaydır özelliğidir - bu, tostları Snackbar ile değiştirmeye başlamak için bir neden olur mu? (bu biraz fikir temelli bir soru olsa da)

Bu bir nedendir. Ancak başka birkaç artı nokta var. Bir örnek için: Aktivite bittiğinde bile tostunuz ekranda kalır. Snackbar değil. Uygulamadan çıktıktan uzun süre sonra tost açılırsa (veya sırayla birden fazla Toast oluşturulması durumunda ortaya çıkmaya devam ederse) daha az kafa karışıklığı olur. Bu Snackbar ile olmayacak.

Her şeyden daha fazlası: Düşünüyorsanız, değiştirmelisiniz. SnackBars, Tost'tan çok daha iyi görünüyor.


19
Şerefe, Snackbar'ın sadece siz etkinlikteyken canlı olduğu nokta gerçekten yararlıdır.
Jakub Holovsky

9
Sistem mesajlarına ek olarak uygulamaya bir bütün olarak atıfta bulunan mesajlar için Toastların tercih edildiğini, mevcut aktiviteye atıfta bulunan mesajlar için Snackbarların tercih edildiğini eklemek isterim. Örneğin, uygulamanız başlangıçta güncellemeleri kontrol ederse, sonuç mesajı için bir kadeh kaldırması kullanmak en iyisidir. Uygulamanızda silinebilecek öğeler varsa, silinen yanıt mesajını geri al düğmeli bir atıştırma çubuğu olarak göstermeyi tercih eder.
Subaru Tashiro

10
Unutulmaması gereken bir diğer nokta da, bildirimler kapatıldığında tostların görüntülenmemesidir.
Horatio

Ayrıca önemli bir fark, Toast'tan farklı olarak , herhangi bir zamanda yalnızca bir Snackbar'ın gösterilmesidir - üst üste birden fazla Toast gösterilebilir, bu da özellikle bunların kaldırılamayacağı gerçeği göz önüne alındığında kullanıcı için can sıkıcı olabilir. swiping.
Firzen

47

Tost ve snack bar arasında küçük bir karşılaştırma eklemek istiyorum. Bana göre, niyetiniz kullanıcı etkileşimi / onayı gerektiren bir uyarı veya bilgi sunmaksa, bir snack bar kullanmalısınız. Herhangi bir kullanıcı onayına ihtiyaç duymayan bir bilgi mesajı ise, tost kullanabilirsiniz.

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                Toast                                 |                                 Snackbar                                 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| 1 | Cant be dismissed by swiping                                        | Can dismiss by swiping                                                   |
| 2 | Activity not required (Can show in android home or above other apps) | Can show inside an activity of your app                                  |
| 3 | Cant handle user input                                              | Can handle user input                                                    |
| 4 | Good for showing info messages to user                               | Good for showing warning/info type messages to user that needs attention |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+

26

Kızarmış ekmek:

  1. Toast, API Seviye 1'e eklendi
  2. Temelde Etkinlik gerekli değildir (Android ana sayfasında veya diğer uygulamaların üzerinde gösterilebilir)
  3. Kullanıcı girdisine dayalı bir eylem gerçekleştiremez
  4. Kaydırarak kapatılamaz
  5. Kaydırma, Tıklama vb.Gibi kullanıcı girdilerini işleyemez.
  6. Kullanıcıya bilgi mesajları göstermek için iyi

SnackBar:

  1. SnackBar, API Seviye 23'e eklendi
  2. Uygulamaların bir aktivitesi içinde gösterilebilir
  3. Bir eylem gerçekleştirebilir
  4. Kaydırılarak kapatılabilir
  5. Kullanıcı girdisini idare edebilir
  6. Dikkat edilmesi gereken kullanıcıya uyarı / bilgi türü mesajları göstermek için iyi

SnackBar ve Toast Kullanımı:

SnackBar:

SnackBar, basit bir açılır mesajın görüntülenmesi gereken alanlarda, bir eylem gerçekleştirme seçeneğiyle birlikte kullanılabilir. Örneğin: GMail uygulamasında, Mail'i sildiğinizde, hızlı SnackBar, altta '1 Silindi' ve 'Geri Al' işlem düğmesiyle birlikte görüntülenir. 'Geri Al' eylem düğmesine basıldığında, silinen postalar geri yüklenecektir.

Kızarmış ekmek:

Toast, Sistem mesajlarının görüntülenmesi gereken alanlarda kullanılabilir.

Örneğin:

Uygulamanız JSON'u uzak sunucudan indirmeye çalıştığında ancak Sunucu Zaman Aşımı veya Kaynak bulunamadı nedeniyle başarısız olduğunda, "Hata Oluştu" şeklinde bir hata mesajı görüntülemeniz yeterlidir. Ancak Toast mesajının kaydırılarak göz ardı edilemeyeceğini anlayın. Yine de Uygulamanızda onu kapatma olanağına sahip olmak istiyorsanız, SnackBar'a gidin.


13

Açılır mesajlara genel bakış sayfasındaki resmi belgelere göre :

Not: Snackbar sınıfının hükümsüz kılar Tost . İken Tost şu anda hala desteklenmektedir, Snackbar artık ekran Kısaca, kullanıcıya geçici mesajlara tercih edilen yoldur.

ve (Materyal Tasarımı) Snackbar'ın belgeleri:

İlgili kavramlar: Android, sistem düzeyinde bildirimleri görüntülemek için kullanılabilen benzer bir API'ye sahip bir Toast sınıfı da sağlar . Genel olarak, atıştırmalık çubukları, eylemin gerçekleştiği kullanıcı arayüzü bağlamında görüntülenebildikleri için, kullanıcılara geri bildirim mesajlarını görüntülemek için tercih edilen mekanizmadır. Rezerv Tost bu yapılamaz durumlar için.


2

Google'ın Materyal Tasarım Spesifikasyonu , herhangi bir işlem yapmadan bir Snackbar'a sahip olmanın uygun olduğunu söylüyor. Snackbar'ın yalnızca tek bir Dize görüntülüyorsa nasıl görünmesi gerektiğine dair örnekler sağladılar. Örneğin, bir e-postayı arşivlemenin Gmail'e özgü bir işlem olduğu halde, "Sistem Mesajı" nın ağ bağlantısının kesilmesi gibi cihaz olayları anlamına geldiğini varsayıyorum.

Tutarlılık uğruna, bir Tost veya Snackbar seçmek ve bunu uygulamanıza uygulamak mantıklıdır.



1

Kısa cevap, bunların arka planda meydana gelen olayları kullanıcıya iletmenin 2 yolu olduğudur ve bunlardan birini zirveye çıkarabilirsiniz, ikisi de iyidir. Sadece aynısını kullandığınızdan ve aralarında geçiş yapmadığınızdan emin olun.

Uzun cevap:

  • Hayır, bu, bir işleme ihtiyacınız olursa Snackbar kullanmanız gerektiği anlamına gelir. Snackbar'ı yalnızca mesajlar için kullanmaya devam edebilirsiniz ("Yükleme tamamlandı" gibi).
  • "Sistem" ile sadece Android sistemi anlamına gelmez. Örneğin, sunucunuzdan bilgi alırken bir json ayrıştırma sorunu yaşadıysa, kullanıcının sunucuyla iletişim kurarken bir sorun yaşamasına izin vermek için toast kullanabilirsiniz.
  • Gerçekten bunu kaydırmanız gerekiyorsa, bu kesinlikle Snackbar'ı seçmeniz için bir neden olabilir.

1

Tasarım ekibimiz de tost veya snack bar kullanmayı düşünüyor. Esnekliği göz önüne alındığında uygulamanın atıştırmalıklar kullanması gerektiği sonucuna vardık.

Tostlar yalnızca kalıcı, kısa bir diziye, farklı ekranlarda hala anlamlı olan bilgi mesajına ihtiyacımız olduğunda kullanılmalıdır .


1

Toast ve Snackbar Android arasındaki fark

  • Tost mesajları özelleştirilebilir ve ekranın herhangi bir yerinde yazdırılabilir, ancak bir Snackbar yalnızca ekranın altında gösterilebilir.
  • Bir Toast mesajında ​​işlem düğmesi yoktur, ancak Snackbar'ın isteğe bağlı olarak işlem düğmesi olabilir.
  • Tost mesajı, süre sınırı bitene kadar kapatılamaz, ancak Snackbar zaman sınırından önce kaydırılabilir.
  • Bu üç farklı değeri kullanarak mesajın ne kadar süreyle gösterileceğini ayarlayabilirsiniz.
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

Kullanım

Kızarmış ekmek

Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

Snackbar

Snackbar snackbar = Snackbar.make(view,"This is Simple Snackbar",Snackbar.LENGTH_SHORT);
snackbar.show();

0

Android ayrıca, öncelikle sistem mesajlaşması için kullanılan kapsül şeklinde bir tost sağlar.

Sanırım "sistem mesajlaşması" ile, bir tostun belirli bir süre için gösterileceğini ve kullanıcı aktiviteler arasında gezinse ve uygulama arka plana taşınsa bile reddedilemeyeceğini ifade ediyorlar.

Kapsamını bir faaliyetle sınırlandırmayı ve onu kapatmayı bir snackbar avantajı olarak görüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.