Press ESC to close

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.

public interface IMessage
    {
        void UzunMesaj(string mesaj);
        void KisaMesaj(string mesaj);

    }

İ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.

[assembly:Dependency(typeof(Mesaj_Android))]
namespace Mesaj.Droid
{
    public class Mesaj_Android : Mesaj.Helper.IMessage
    {
        public void KisaMesaj(string mesaj)
        {
            Toast.MakeText(Android.App.Application.Context, mesaj, ToastLength.Short).Show();

        }

        public void UzunMesaj(string mesaj)
        {
            Toast.MakeText(Android.App.Application.Context, mesaj, ToastLength.Long).Show();
        }
    }
}

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.

private void btnTikla_Clicked(object sender,EventArgs e)
        {
            string mesaj = "Bu bir mesajdır";
            DependencyService.Get<IMessage>().UzunMesaj(mesaj);
        }

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.

Comments (1)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir