Xamarin.Forms'da Picker'ın Cancel/Done Text'ini Değiştirme - Sümeyya Tuğçe Arar
Home / Xamarin / Xamarin.Forms’da Picker’ın Cancel/Done Text’ini Değiştirme
Bu yazıda Xamarin.Forms projemizde kullandığımız picker kontrolünün Tamam/İptal butonunun text’ini nasıl değiştireceğimizi anlatacağım. Bu işlemi gerçekleştirebilmemiz için Custom Renderer tanımlamamız gerekiyor. Bu nedenle önce portable katmanında Picker sınıfından miras alan CustomPicker sınıfımızı oluşturalım.
Bu text’leri dinamik olarak değiştirebilmek için de DoneButtonText ve CancelButtonText isimli iki tane bindable property tanımladık. Şimdi her bir platform için renderer’larımızı yazalım.
iOS’ta picker kontrolünün native karşığı UITextField‘dir. Cancel ve done buton’ları UIBarButtonItem olarak tanımlanıp, UIToolBar‘a ekleniyor ve UITextField’e ItemInputAccessoryView kullanılarak tanımlanıyor.
nesnesi ise toolbar’daki kontrollerin arasına yerleştirildiğinde aralarında eşit boşluk olması sağlıyor. Sadece bir tane eklenmiş ve yanında da bir kontrol varsa, kontrol kendi alanı kadar yer kaplarken kalan boşluğu bu nesne dolduruyor. Yani burada da done buton’undan önce eklendiği için onu en sağa itiyor. Bu nesneyi koymasaydık done butonu en sola dayanırdı.
Android’de renderer biraz daha farklı görünüyor çünkü Done/Cancel butonları ancak picker’a tıklandığında tanımlanıyor.
koduna bakarsak picker’a tıklandığı an görüntülenecek olan AlertDialog tanımlanıyor. Bizim değiştireceğimiz buton’da bu nesnenin içinde yer alıyor ve bu nesne ile beraber tanımlanıyor. Bu yüzden değiştirme işlemini builder’ın tanımlandığı OnCLick() event’inde yapmamız gerekiyor. OnCLick() için de bir listener tanımlıyoruz ve
metodlarını kullanarak Cancel/Done butonlarının text’lerini ayarlıyoruz.