Xamarin.Forms Bölüm 16 – Color Üzerinden Stacklayout ve Stack’s View

Xamarin

Bu bölümde StackLayout üzerinde duruluyor.

View’lerin Stack’leri

StackLayout sınıfı, çocuklarını stack halinde düzenler. Yalnızca iki özelliği kendi başına tanımlar:

  • StackOrientation türünden Orientation, iki üyeli bir numaralandırma: Dikey (varsayılan) ve Yatay.
  • Double türünden Spacing, 6.0’a başlatılır.

 

StackLayout, bütün renkleri listeleme işi için ideal görünüyor. Bir StackLayout’un Children koleksiyonuna çocuklar eklemek için IList <T> tarafından tanımlanan Add yöntemini kullanabilirsiniz. İki arrrayden birden çok Label nesnesi oluşturan ve her Label’ı bir StackLayout’ın Children koleksiyonuna ekleyen bazı kodlar yazalım. (Bu kısmı size bıraktım, paralel iki array ile yapabilirsiniz fakat aşağıdaki yöntem daha iyidir).

Color ve name alanlarıyla belki küçük bir yapıda Tuple<Color, string> değerlerinin bir arrayi olarak veya anonim bir tür olarak renk ve adı bir arada tutmaktır:

 

 

Videoda ki “Çikolata” kodunu düzenlerken eklemeyi unutmuşum, Gist’e koyduktan sonra da çok üşendim, siz koymayı unutmayın. 🙂

Açıkçası, bu optimum değil. Bazı renkler hiç görünür değildir ve bazıları okumak için çok soluktur. Ayrıca, liste iki platformda sayfayı taşar ve yukarı kaydırmanın bir yolu yoktur. Bir çözüm, metin boyutunu azaltmaktır. NamedSize.Large’yi kullanmak yerine, daha küçük değerlerden birini deneyin.

Başka bir kısmi çözüm StackLayout’un kendisinde bulunabilir: StackLayout, çocuklar arasında bırakılacak alanın ne kadarının yer aldığını belirten Double tipi bir Spacing özelliği tanımlar. Varsayılan olarak, 6.0’dır, ancak tüm öğelerin uyacağından emin olmanıza yardımcı olmak için daha küçük bir değere (örneğin sıfır) ayarlayabilirsiniz.

Artık tüm Label görünümleri, metin için gereken kadar dikey alan kaplar. Ancak en iyi çözüm scrolling. Kaydırma (scrolling) StackLayout tarafından otomatik olarak desteklenmez ve sonraki bölümde göreceğiniz üzere ScrollView adlı başka bir öğeyle eklenmektedir.

Ancak, şimdiye kadar gösterilen renk programları ile ilgili bir başka sorun var: açıkça bir dizi (array) renk ve isim oluşturmaları ya da açıkça her renk için label görünümleri oluşturmaları gerekiyor. Programcılara göre, bu biraz sıkıcı ve dolayısıyla biraz hoşnutsuz. Otomatikleştirilebilir mi?

Previous
Xamarin.Forms Span ve Font Attributes – Bölüm 15
Next
Xamarin.Forms – Scroll (Bölüm 17)

Leave a comment

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