(float x, float y) = GetItemPosition(i);
// 5. Placing item with Padding and Margin.
item.Position = new Position(x, y);
-
+
//Linear Item need to be resized!
if (item.IsHeader || item.IsFooter || item.isGroupHeader || item.isGroupFooter)
{
+ var size = (IsHorizontal? item.SizeWidth: item.SizeHeight);
+ if (colView.SizingStrategy == ItemSizingStrategy.MeasureFirst)
+ {
+ if (item.IsHeader) size = headerSize;
+ else if (item.IsFooter) size = footerSize;
+ else if (item.isGroupHeader) size = groupHeaderSize;
+ else if (item.isGroupFooter) size = groupFooterSize;
+ }
if (IsHorizontal && item.HeightSpecification == LayoutParamPolicies.MatchParent)
{
- item.Size = new Size(item.Size.Width, Container.Size.Height - Padding.Top - Padding.Bottom - item.Margin.Top - item.Margin.Bottom);
+ item.Size = new Size(size, Container.Size.Height - Padding.Top - Padding.Bottom - item.Margin.Top - item.Margin.Bottom);
}
else if (!IsHorizontal && item.WidthSpecification == LayoutParamPolicies.MatchParent)
{
- item.Size = new Size(Container.Size.Width - Padding.Start - Padding.End - item.Margin.Start - item.Margin.End, item.Size.Height);
+ item.Size = new Size(Container.Size.Width - Padding.Start - Padding.End - item.Margin.Start - item.Margin.End, size);
}
}
//Console.WriteLine("[NUI] ["+item.Index+"] ["+item.Position.X+", "+item.Position.Y+" ==== \n");
// 5. Placing item.
(float posX, float posY) = GetItemPosition(i);
item.Position = new Position(posX, posY);
-
+
+ var size = (IsHorizontal? item.SizeWidth: item.SizeHeight);
+
+ if (colView.SizingStrategy == ItemSizingStrategy.MeasureFirst)
+ {
+ if (item.IsHeader || item.IsFooter || item.isGroupHeader || item.isGroupFooter)
+ {
+ if (item.IsHeader) size = headerSize;
+ else if (item.IsFooter) size = footerSize;
+ else if (item.isGroupHeader) size = groupHeaderSize;
+ else if (item.isGroupFooter) size = groupFooterSize;
+ }
+ else size = StepCandidate;
+ }
if (IsHorizontal && item.HeightSpecification == LayoutParamPolicies.MatchParent)
{
- item.Size = new Size(item.Size.Width, Container.Size.Height - Padding.Top - Padding.Bottom - item.Margin.Top - item.Margin.Bottom);
+ item.Size = new Size(size, Container.Size.Height - Padding.Top - Padding.Bottom - item.Margin.Top - item.Margin.Bottom);
}
else if (!IsHorizontal && item.WidthSpecification == LayoutParamPolicies.MatchParent)
{
- item.Size = new Size(Container.Size.Width - Padding.Start - Padding.End - item.Margin.Start - item.Margin.End, item.Size.Height);
+ item.Size = new Size(Container.Size.Width - Padding.Start - Padding.End - item.Margin.Start - item.Margin.End, size);
}
}
return;