diff options
-rw-r--r-- | Xamarin.Forms.Core.UnitTests/GroupViewUnitTests.cs | 13 | ||||
-rw-r--r-- | Xamarin.Forms.Core/Layout.cs | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/GroupViewUnitTests.cs b/Xamarin.Forms.Core.UnitTests/GroupViewUnitTests.cs index 61e38cf1..fe823b1a 100644 --- a/Xamarin.Forms.Core.UnitTests/GroupViewUnitTests.cs +++ b/Xamarin.Forms.Core.UnitTests/GroupViewUnitTests.cs @@ -288,5 +288,18 @@ namespace Xamarin.Forms.Core.UnitTests Assert.False (added); Assert.False (removed); } + + [Test] + public void AddToSecondLayoutRemovesFromOriginal() + { + var child = new BoxView(); + var layout1 = new NaiveLayout(); + var layout2 = new NaiveLayout(); + + layout1.Children.Add(child); + layout2.Children.Add(child); + + Assert.False(layout1.Children.Contains(child)); + } } } diff --git a/Xamarin.Forms.Core/Layout.cs b/Xamarin.Forms.Core/Layout.cs index c611777c..a7864070 100644 --- a/Xamarin.Forms.Core/Layout.cs +++ b/Xamarin.Forms.Core/Layout.cs @@ -395,6 +395,9 @@ namespace Xamarin.Forms void OnInternalAdded(View view) { + var parent = view.Parent as Layout; + parent?.InternalChildren.Remove(view); + OnChildAdded(view); if (ShouldInvalidateOnChildAdded(view)) InvalidateLayout(); |