MeasureChildWithMargins(childLayout, unrestrictedMeasureSpec, new LayoutLength(0), heightMeasureSpec, new LayoutLength(0)); // Width unrestricted by parent
}
- totalWidth = childLayout.MeasuredWidth.Size.AsDecimal();
- totalHeight = childLayout.MeasuredHeight.Size.AsDecimal();
+ totalWidth = (childLayout.MeasuredWidth.Size + (childLayout.Padding.Start + childLayout.Padding.End)).AsDecimal();
+ totalHeight = (childLayout.MeasuredHeight.Size + (childLayout.Padding.Top + childLayout.Padding.Bottom)).AsDecimal();
if (childLayout.MeasuredWidth.State == MeasuredSize.StateType.MeasuredSizeTooSmall)
{
mPanGestureDetector.AddDirection(value == Direction.Horizontal ?
PanGestureDetector.DirectionHorizontal : PanGestureDetector.DirectionVertical);
- ContentContainer.WidthSpecification = LayoutParamPolicies.WrapContent;
- ContentContainer.HeightSpecification = LayoutParamPolicies.WrapContent;
+ ContentContainer.WidthSpecification = ScrollingDirection == Direction.Vertical ? LayoutParamPolicies.MatchParent : LayoutParamPolicies.WrapContent;
+ ContentContainer.HeightSpecification = ScrollingDirection == Direction.Vertical ? LayoutParamPolicies.WrapContent : LayoutParamPolicies.MatchParent;
}
}
}
ContentContainer.Layout = value;
if (ContentContainer.Layout != null)
{
- ContentContainer.Layout.SetPositionByLayout = true;
+ ContentContainer.Layout.SetPositionByLayout = false;
}
}
}
ContentContainer = new View()
{
Name = "ContentContainer",
- WidthSpecification = LayoutParamPolicies.WrapContent,
- HeightSpecification = LayoutParamPolicies.WrapContent,
- Layout = new LinearLayout()
+ WidthSpecification = ScrollingDirection == Direction.Vertical ? LayoutParamPolicies.MatchParent : LayoutParamPolicies.WrapContent,
+ HeightSpecification = ScrollingDirection == Direction.Vertical ? LayoutParamPolicies.WrapContent : LayoutParamPolicies.MatchParent,
+ Layout = new AbsoluteLayout()
{
- SetPositionByLayout = true
+ SetPositionByLayout = false
},
};
ContentContainer.Relayout += OnScrollingChildRelayout;