Xamarin Forms Toast Mesaj

Bazen uygulamalarınızda ekranda kısa bir mesaj belirmesini isteyebilirsiniz. Bunun için kullanıcıyı yormamanız gerekiyor. DisplayAlert ile bir mesaj verdiğinizde kullanıcının bu mesajı geçmesi için mutlaka ekrana bir kez daha dokunması gerekmektedir. Biz bunun yerine mesajı bir Toast ile ekrana basabiliriz. Kullanımı çok kolay olan bu Toast mesajı uygulamanızda hem sizin hem de kullanıcılarınız için büyük bir kolaylık sağlıyor

Toast mesajını dependency services  kullanarak ekrana basacağız. Bunun  için ilk olarak bir interface oluşturmamız gerekiyor. Ben IMessage adında bir interface oluşturuyorum. Bu interfacein içinde iki fonksiyon olacak. Bu fonksiyonlardan ilki ekranda uzun süre duran bir mesajı çalıştıracak, diğeri ise daha kısa süren mesajı ekrana basacak. Bu fonksiyonlar ayrıca dışarıdan string olarak mesaj alacaklar ekranda gösterebilmesi için.

İnterface oluşturduktan sonra platformlar için dependency services yazmamız gerekiyor. Ben bunu şimdilik Android için yapacağım. Bunun için android katmanına gidiyorum ve burada bir sınıf oluşturuyorum. Bu sınıf, portable katmanında oluşturduğumuz IMessage interfaceinden kalıtım alacak. Kalıtımı aldıktan sonra inherit ettiğimiz zaman fonksiyonlar oluşuyor. Fonksiyonlar geldiğinde içini doldurmamız gerekiyor. Kısa mesajda ilk olarak hangi contexte yer alacağı sonrasında mesajı en sonunda ise mesajın süresini belirleyip bunu gösteriyoruz. Aslında yapımı bu kadar kolay. Tabi bu sınıfın bir dependency services olduğunu belirtmemiz gerekiyor. Bunu da sınıfın başında yapıyoruz. Dependecy Services hakkında daha detaylı bilgi almak istiyorsanız buradan alabilirsiniz.

Tabi en son olarak da bunu ekranda göstermemiz gerekiyor. Bir sayfanın içine buton atıyorum. Butona bir clicked eventi ekleyip, içini dolduruyorum.

Butona tıkladığımız zaman ekranda mesaj böyle gözükecek.

Projeye github üzerinden erişmek için buraya tıklayınız. Sorularınız olursa yorum veya mail yoluyla bana ulaşabilirsiniz.

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.