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)
committerKangho Hur <kangho.hur@samsung.com>
Fri, 24 Mar 2017 04:18:57 +0000 (13:18 +0900)
commit1c019470b9c2af3a1f9ab25252b23327ca5e351a
treedc95dcb1b491236ae6975441e4fc5e5ba4650db3
parentb50a12b136ef17b0bf46103821481d92ec3b2dae
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