【发布时间】:2019-03-18 01:12:39
【问题描述】:
我们在 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 调用页面时,页面正在重新加载(这是功能)并且网格大小不断减小。
【问题讨论】:
-
gridLayout Grid是在OnAppearing、构造函数、Xaml中创建的,还是在哪里创建的?
标签: layout xamarin.forms xamarin.ios xamarin.android grid