Merge branch '4.1.0' into 4.2.0
authorSamantha Houts <samantha.houts@xamarin.com>
Thu, 18 Jul 2019 03:03:30 +0000 (20:03 -0700)
committerSamantha Houts <samantha.houts@xamarin.com>
Thu, 18 Jul 2019 03:03:30 +0000 (20:03 -0700)
1  2 
Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems
Xamarin.Forms.Platform.Android/FastRenderers/LabelRenderer.cs
Xamarin.Forms.Platform.Android/Renderers/ScrollViewRenderer.cs
Xamarin.Forms.Platform.Android/ViewExtensions.cs
Xamarin.Forms.Platform.Android/VisualElementRenderer.cs
Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs

      <Compile Include="$(MSBuildThisFileDirectory)Issue6368.cs" />
      <Compile Include="$(MSBuildThisFileDirectory)Issue6077.cs" />
      <Compile Include="$(MSBuildThisFileDirectory)Issue3548.cs" />
+     <Compile Include="$(MSBuildThisFileDirectory)Issue6472.cs" />
      <Compile Include="$(MSBuildThisFileDirectory)Issue6614.cs" />
 +    <Compile Include="$(MSBuildThisFileDirectory)Issue5239.cs" />
 +    <Compile Include="$(MSBuildThisFileDirectory)Issue6738.cs" />
    </ItemGroup>
    <ItemGroup>
      <EmbeddedResource Include="$(MSBuildThisFileDirectory)Bugzilla22229.xaml">
@@@ -94,13 -94,14 +94,23 @@@ namespace Xamarin.Forms.Platform.Androi
                        view.ClipToOutline = value;
                }
  
 +              public static bool SetElevation(this AView view, float value)
 +              {
 +                      if (view.IsDisposed() || !Forms.IsLollipopOrNewer)
 +                              return false;
 +
 +                      view.Elevation = value;
 +                      return true;
 +              }
++              
+               internal static void MaybeRequestLayout(this AView view)
+               {
+                       var isInLayout = false;
+                       if ((int)Build.VERSION.SdkInt >= 18)
+                               isInLayout = view.IsInLayout;
+                       if (!isInLayout && !view.IsLayoutRequested)
+                               view.RequestLayout();
+               }
        }
  }
@@@ -235,10 -241,8 +235,11 @@@ namespace Xamarin.Forms.Platform.Androi
                        if (AutoTrack && Tracker == null)
                                SetTracker(new VisualElementTracker(this));
  
-                       SendVisualElementInitialized(element, this);
 +                      if (oldElement != null)
 +                              Tracker?.UpdateLayout();
 +
+                       if (element != null)
+                               SendVisualElementInitialized(element, this);
  
                        EffectUtilities.RegisterEffectControlProvider(this, oldElement, element);