Мы сталкиваемся с проблемами в сетке Xamarin, размеры определяются в методе OnAppearing.каждый раз, когда мы вызываем метод OnAppearing, размер сетки непрерывно уменьшается, не получая точную проблему
, вот код
gridLayout.RowDefinitions.Add(new RowDefinition(){
Height = new GridLength(5, GridUnitType.Star),
});
gridLayout.RowDefinitions.Add(new RowDefinition(){
Height = new GridLength(5, GridUnitType.Star),
});
gridLayout.ColumnDefinitions.Add(new ColumnDefinition()
{
Width = new GridLength(2, GridUnitType.Star),
});
gridLayout.ColumnDefinitions.Add(new ColumnDefinition(){
Width = new GridLength(2, GridUnitType.Star),
});
gridLayout.ColumnDefinitions.Add(new ColumnDefinition(){
Width = new GridLength(2, GridUnitType.Star),
});
gridLayout.ColumnDefinitions.Add(new ColumnDefinition(){
Width = new GridLength(2, GridUnitType.Star),
});
gridLayout.ColumnDefinitions.Add(new ColumnDefinition(){
Width = new GridLength(2, GridUnitType.Star),
});
var productIndex = 0;
for (int rowIndex = 0; rowIndex < 2; rowIndex++)
{
for (int columnIndex = 0; columnIndex < 5; columnIndex++)
{
if (productIndex >= CategoryArray.Count)
{
break;
}
var category = CategoryArray[productIndex];
productIndex += 1;
var categoriesView = new CategoriesView
{
BackgroundColor = Color.White
};
if(category.Image == null){
categoriesView.CategoriesImage.Source = "category_logo";
}else{
categoriesView.CategoriesImage.Source = category.Image;
}
//categoriesView.BackgroundColor = Color.Olive;
categoriesView.TextLabel.Text = category.Name;
categoriesView.CategoryId = category.Id.ToString();
gridLayout.Children.Add(categoriesView, columnIndex, rowIndex);
//gridLayout.BackgroundColor = Color.Beige;
}
}
, когда когда-либо OnAppearing вызывает, страница перезагружается (это особенность) и размер сетки постоянно уменьшается.