Android Snackbar Kullanımı

Android’in bize sunduğu bir diğer bileşen olan Snackbar, Google’ın Material Design anlayışı adı altında Android’e eklenmiştir. Toast‘a çok benzemekle birlikte, Toast’tan, kullanıcı etkileşimine girebilme özelliği bakımından ayrılmaktadır.

Genellikle, kullanıcıya, gerçekleştirdiği bir işlemi, geri alma şansının tanınması amacıyla kullanılır. Örneğin; kullanıcı bir mesajı sildiğinde, silmeyi geri almak için “Silmeyi Geri Al” şeklinde bir kullanıcı etkileşimli (butonlu) Snackbar oluşturabiliriz. Bir diğer çoğunluk kullanım şekli; kullanıcının uygulama izinlerini kabul etmediği taktirde, izin vermesi için tekrar uyarılması ve izinlerin tekrar istenmesi. (Realtime Permissions)

(Görsel https://developer.android.com/training/snackbar/action.html adresinden alıntıdır.)

 

MainActivity.java

Burada “activity_main.xml” dosyasında tanımlanan button1 id değerine sahip Button tanımını ve myLinearLayout id değerine sahip Layout tanımını programımıza dahil ettik ve butona tıklama dinleyici (click listener) ekledik. Butona tıklandığı zaman meydana gelecek olan olayı, Snackbar mesajı gösterecek şekilde tanımladık ve Snackbar’a tıklandığında da Toast mesajı gösterecek şekilde. Snackbar sınıfına make fonksiyonunun 1.parametresi, mesajın hangi Layout’ta (myLinearLayout) belireceğini, 2.parametresi gösterilecek mesajı (String tipinde) ve 3.parametresi ise mesajın ekranda kalma süresini belirtir (Toast’ın makeText fonksiyonunun aldığı 3. parametresinin 2 alternatifine ek olarak, Snackbar 3. bir alternatife daha sahiptir. Bu parametre Snackbar mesajının belirtilen Layout’ta süresiz kalmasını sağlar.).

Tıpkı butonda olduğu gibi bir tıklama dinleyiciye (click listener) sahip olan Snackbar’ın, tıklandığında bir önceki yazımda bahsettiğim Toast mesajını göstermesini sağladık.

 

Snackbar mesajının yazı renginin, tipinin vs. değiştirilmesi mümkündür. Ayrıca Snackbar’a resim eklemek de mümkündür. Daha detaylı kullanım için Android dökümantasyon sayfasına bakmanızı öneririm.

 

Referanslar:

https://developer.android.com/training/snackbar/action.html

https://developer.android.com/reference/android/support/design/widget/Snackbar.html