Xamarin.Forms {Grid} – Bölüm 9

Xamarin

 

GridLayout

  • Bir StackLayout öğesinin aksine, Grid, içeriği iki boyutta yerleştirmeye izin verir. Bir StackLayout, gerektiğinde iç içe geçmiş layoutlarla rafine edilirken, bir Gridin içeriği birden çok hücreyi kapsar.

  • Oluşturacağımız TGrid sınıfının TStackLayout gibi aynı HeightRequest ve spacingleri vardır. Beş child nesneyi eklemeden önce, yalnızca satırları ve sütunları tanımlamamız gerekir. Bu, bir RowDefinitionCollection ve bir ColumnDefinitionCollection aracılığıyla yapılır. Bir RowDefinition veya ColumnDefinition sırasıyla önceden tanımlı bir Yükseklik veya Genişlik gösterebilir.
  • Varsayılan olarak, alan eşit olarak bölünür. Biz Yalnızca ilk ve son sütunun genişliğini belirteceğiz, bu, Icon ve Time’dır. Eşit boyutlarda üç eşit satır bulunan RowDefinitions’ın varsayılan ve ihmal edilebilir olduğunu unutmayın. Ardından, satır veya sütunların sayısı, daha sonra eklenen çocuklardan (children) otomatik olarak çıkarılır.
  • Bu child (alt) öğeler TStackLayout öğesine eklenen öğelerle aynıdır. Yalnızca Add yani ekleme metodu farklıdır: Grid hücre koordinatlarını (sol, üst) veya hücre aralığını (sol, sağ, üst, alt) belirlemenize izin verir. Örneğimizde sadece İkon, birden fazla hücreden, yani ilk sütunun üç satırından oluşur.

public class TGrid : Grid

{

public TGrid()

{

HeightRequest = 70;//gridin yüksekliği

RowSpacing = 2;//satır aralığı

ColumnSpacing = 5;//sütun aralığı

RowDefinitions = new RowDefinitionCollection { //3 tane satır oluşturma

new RowDefinition(),

new RowDefinition(),

new RowDefinition(),

};

ColumnDefinitions = new ColumnDefinitionCollection {// 3 sütun oluşturma

new ColumnDefinition{ Width = new GridLength(70) },//iconun kare olması için ilk sütunu 70 genişliğinde

new ColumnDefinition(),//2. Sütun genişliği ihmal edilebilir

new ColumnDefinition{ Width = new GridLength(50) },//bu da time labelı için bir sütun

};

Children.Add(new Icon("Y", Color.FromRgb(x.x, x.x, x.x)), 0, 1, 0, 3);//sütun, satır

Children.Add(new Name("Yasin"), 1, 0);

Children.Add(new Subject("Oyun Zamanı"), 1, 1);

Children.Add(new Body("Bugün akşam seninle bir oyun oynayalım da seni bir yeneyim!"), 1, 2);

Children.Add(new Time("14:00"), 2, 0);

}

}

Slayt = https://goo.gl/1t9jf2

Previous
Xamarin Forms {Stacklayout} – Bölüm 8
Next
Xamarin {AbsoluteLayout} – Bölüm 10

Leave a comment

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