Update RelativeLayout to make it respond to constraint changes (#425)
authorPhilippe Leybaert <philippe@activa.be>
Thu, 2 Feb 2017 18:55:55 +0000 (12:55 -0600)
committerJason Smith <jason.smith@xamarin.com>
Thu, 2 Feb 2017 18:55:54 +0000 (13:55 -0500)
commit01a56f9836a1cc5ea7da860032d8ca71859b1e17
treecf8d6069f02358e9d4be75971a01b3018694ea24
parent9a6c9a0896a80889079ec57aa09a6c323deb24f3
Update RelativeLayout to make it respond to constraint changes (#425)

* Update RelativeLayout to make it respond to constraint changes

Constraints of a RelativeLayout are bindable properties but the layout
does not update when the constraints are updated.

This change will invalidate the layout whenever  XConstraint,
YConstraint, WidthConstraint or HeightConstraint is changed (either in
code or through a change in the bound property)

* Specified changed handler as named property

* Adding attached property accessors for layout properties

Since the constraint attached properties can now be updated at runtime,
setters are required for those properties. Also, when adding a child
view at runtime using the Add() method with x/y/w/h constraints,
generating the bounds constraints is deferred to the layout phase.

* Unit tests for runtime constraints updates in RelativeLayout

* Rename unit test method

Rename LayoutChangesAtRuntim() to LayoutIsUpdatedWhenConstraintsChange()

* Wrap RelativeLayout update setters in BatchBegin/Commit

* Update documentation of RelativeLayout

Added SetXConstraint(), SetYConstraint(), SetWidthConstraint() and
SetHeightConstraint()
Xamarin.Forms.Core.UnitTests/RelativeLayoutTests.cs
Xamarin.Forms.Core/RelativeLayout.cs
docs/Xamarin.Forms.Core/Xamarin.Forms/RelativeLayout.xml