diff options
-rw-r--r-- | Xamarin.Forms.Controls/CompressedLayout.xaml | 17 | ||||
-rw-r--r-- | Xamarin.Forms.Controls/CompressedLayout.xaml.cs | 15 | ||||
-rw-r--r-- | Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj | 8 | ||||
-rw-r--r-- | Xamarin.Forms.Core/CompressedLayout.cs | 40 | ||||
-rw-r--r-- | Xamarin.Forms.Core/Layout.cs | 9 | ||||
-rw-r--r-- | Xamarin.Forms.Core/Xamarin.Forms.Core.csproj | 1 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Android/VisualElementPackager.cs | 73 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Android/VisualElementRenderer.cs | 11 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Android/VisualElementTracker.cs | 5 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.iOS/RendererPool.cs | 12 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.iOS/VisualElementPackager.cs | 30 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.iOS/VisualElementTracker.cs | 4 | ||||
-rw-r--r-- | docs/Xamarin.Forms.Core/Xamarin.Forms/CompressedLayout.xml | 119 | ||||
-rw-r--r-- | docs/Xamarin.Forms.Core/index.xml | 1 |
14 files changed, 289 insertions, 56 deletions
diff --git a/Xamarin.Forms.Controls/CompressedLayout.xaml b/Xamarin.Forms.Controls/CompressedLayout.xaml new file mode 100644 index 00000000..52704865 --- /dev/null +++ b/Xamarin.Forms.Controls/CompressedLayout.xaml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" + xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" + x:Class="Xamarin.Forms.Controls.CompressedLayout" + Padding="0,20,0,0"> + <StackLayout Padding="6" CompressedLayout.IsHeadless="true"> + <Label Text="First"/> + <StackLayout Padding="6" CompressedLayout.IsHeadless="true"> + <Label Text="Second"/> + <ContentView Padding="6" CompressedLayout.IsHeadless="true" BackgroundColor="Pink" > + <Label x:Name="this" Text="{Binding X, Source={x:Reference this}, StringFormat='Label.X:{0}'}"/> + </ContentView> + <Label Text="Fourth"/> + </StackLayout> + <Label Text="Fifth"/> + </StackLayout> +</ContentPage>
\ No newline at end of file diff --git a/Xamarin.Forms.Controls/CompressedLayout.xaml.cs b/Xamarin.Forms.Controls/CompressedLayout.xaml.cs new file mode 100644 index 00000000..d92fd802 --- /dev/null +++ b/Xamarin.Forms.Controls/CompressedLayout.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +using Xamarin.Forms; + +namespace Xamarin.Forms.Controls +{ + public partial class CompressedLayout : ContentPage + { + public CompressedLayout() + { + InitializeComponent(); + } + } +} diff --git a/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj b/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj index eda7b852..5ac8b40b 100644 --- a/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj +++ b/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj @@ -261,6 +261,9 @@ <Compile Include="GalleryPages\MacTwitterDemo.xaml.cs"> <DependentUpon>MacTwitterDemo.xaml</DependentUpon> </Compile> + <Compile Include="CompressedLayout.xaml.cs"> + <DependentUpon>CompressedLayout.xaml</DependentUpon> + </Compile> </ItemGroup> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> <Import Project="..\.nuspec\Xamarin.Forms.targets" /> @@ -297,6 +300,9 @@ <EmbeddedResource Include="HanselForms\TwitterPage.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> </EmbeddedResource> + <EmbeddedResource Include="CompressedLayout.xaml"> + <Generator>MSBuild:UpdateDesignTimeXaml</Generator> + </EmbeddedResource> </ItemGroup> <Import Project="..\Xamarin.Forms.Controls.Issues\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems" Label="Shared" /> <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> @@ -346,4 +352,4 @@ <Copy SourceFiles="@(ConfigFile)" DestinationFiles="controlgallery.config" Condition="!Exists('controlgallery.config')" /> </Target> <Import Project="..\packages\Xamarin.Insights.1.12.3\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets" Condition="Exists('..\packages\Xamarin.Insights.1.12.3\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets')" /> -</Project>
\ No newline at end of file +</Project> diff --git a/Xamarin.Forms.Core/CompressedLayout.cs b/Xamarin.Forms.Core/CompressedLayout.cs new file mode 100644 index 00000000..bd93b560 --- /dev/null +++ b/Xamarin.Forms.Core/CompressedLayout.cs @@ -0,0 +1,40 @@ +using System; +using System.ComponentModel; + +namespace Xamarin.Forms +{ + public static class CompressedLayout + { + public static readonly BindableProperty IsHeadlessProperty = + BindableProperty.Create("IsHeadless", typeof(bool), typeof(CompressedLayout), default(bool), + propertyChanged: OnIsHeadlessPropertyChanged); + + public static bool GetIsHeadless(BindableObject bindable) + => (bool)bindable.GetValue(IsHeadlessProperty); + + public static void SetIsHeadless(BindableObject bindable, bool value) + => bindable.SetValue(IsHeadlessProperty, value); + + static void OnIsHeadlessPropertyChanged(BindableObject bindable, object oldValue, object newValue) + { + var ve = bindable as IVisualElementController; + if (ve == null) + return; + if (ve.IsPlatformEnabled) + throw new InvalidOperationException("IsHeadless can not be modified when the view is rendered"); + } + + static readonly BindablePropertyKey HeadlessOffsetPropertyKey = + BindableProperty.CreateReadOnly("HeadlessOffset", typeof(Point), typeof(CompressedLayout), default(Point)); + + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty HeadlessOffsetProperty = HeadlessOffsetPropertyKey.BindableProperty; + + [EditorBrowsable(EditorBrowsableState.Never)] + public static Point GetHeadlessOffset(BindableObject bindable) + => (Point)bindable.GetValue(HeadlessOffsetProperty); + + internal static void SetHeadlessOffset(BindableObject bindable, Point value) + => bindable.SetValue(HeadlessOffsetPropertyKey, value); + } +}
\ No newline at end of file diff --git a/Xamarin.Forms.Core/Layout.cs b/Xamarin.Forms.Core/Layout.cs index 29565b7c..537fd971 100644 --- a/Xamarin.Forms.Core/Layout.cs +++ b/Xamarin.Forms.Core/Layout.cs @@ -237,6 +237,11 @@ namespace Xamarin.Forms double w = Math.Max(0, width - Padding.HorizontalThickness); double h = Math.Max(0, height - Padding.VerticalThickness); + var isHeadless = CompressedLayout.GetIsHeadless(this); + var headlessOffset = CompressedLayout.GetHeadlessOffset(this); + for (var i = 0; i < LogicalChildrenInternal.Count; i++) + CompressedLayout.SetHeadlessOffset((VisualElement)LogicalChildrenInternal[i], isHeadless ? new Point(headlessOffset.X + Bounds.X, headlessOffset.Y + Bounds.Y) : new Point()); + LayoutChildren(x, y, w, h); for (var i = 0; i < oldBounds.Length; i++) @@ -245,9 +250,7 @@ namespace Xamarin.Forms Rectangle newBound = ((VisualElement)LogicalChildrenInternal[i]).Bounds; if (oldBound != newBound) { - EventHandler handler = LayoutChanged; - if (handler != null) - handler(this, EventArgs.Empty); + LayoutChanged?.Invoke(this, EventArgs.Empty); return; } } diff --git a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj index 3ef9a2a6..ebe3ca46 100644 --- a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj +++ b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj @@ -463,6 +463,7 @@ <Compile Include="Xaml\TypeConversionExtensions.cs" /> <Compile Include="Xaml\ValueConverterProvider.cs" /> <Compile Include="PlatformConfiguration\macOSSpecific\Page.cs" /> + <Compile Include="CompressedLayout.cs" /> </ItemGroup> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> <ItemGroup> diff --git a/Xamarin.Forms.Platform.Android/VisualElementPackager.cs b/Xamarin.Forms.Platform.Android/VisualElementPackager.cs index 1d886629..e31de7fc 100644 --- a/Xamarin.Forms.Platform.Android/VisualElementPackager.cs +++ b/Xamarin.Forms.Platform.Android/VisualElementPackager.cs @@ -18,11 +18,16 @@ namespace Xamarin.Forms.Platform.Android IVisualElementRenderer _renderer; - public VisualElementPackager(IVisualElementRenderer renderer) + VisualElement _element; + + IElementController ElementController => _element; + + public VisualElementPackager(IVisualElementRenderer renderer, VisualElement element = null) { if (renderer == null) - throw new ArgumentNullException("renderer"); + throw new ArgumentNullException(nameof(renderer)); + _element = element ?? renderer.Element; _childAddedHandler = OnChildAdded; _childRemovedHandler = OnChildRemoved; _childReorderedHandler = OnChildrenReordered; @@ -31,8 +36,6 @@ namespace Xamarin.Forms.Platform.Android _renderer.ElementChanged += (sender, args) => SetElement(args.OldElement, args.NewElement); } - IElementController ElementController => _renderer.Element as IElementController; - public void Dispose() { Dispose(true); @@ -67,44 +70,49 @@ namespace Xamarin.Forms.Platform.Android public void Load() { - SetElement(null, _renderer.Element); + SetElement(null, _element); } void AddChild(VisualElement view, IVisualElementRenderer oldRenderer = null, RendererPool pool = null, bool sameChildren = false) { Performance.Start(); - if (_childViews == null) - _childViews = new List<IVisualElementRenderer>(); + if (CompressedLayout.GetIsHeadless(view)) { + var packager = new VisualElementPackager(_renderer, view); + view.IsPlatformEnabled = true; + packager.Load(); + } else { + if (_childViews == null) + _childViews = new List<IVisualElementRenderer>(); - IVisualElementRenderer renderer = oldRenderer; - if (pool != null) - renderer = pool.GetFreeRenderer(view); - if (renderer == null) - { - Performance.Start("New renderer"); - renderer = Platform.CreateRenderer(view); - Performance.Stop("New renderer"); - } + IVisualElementRenderer renderer = oldRenderer; + if (pool != null) + renderer = pool.GetFreeRenderer(view); + if (renderer == null) + { + Performance.Start("New renderer"); + renderer = Platform.CreateRenderer(view); + Performance.Stop("New renderer"); + } - if (renderer == oldRenderer) - { - Platform.SetRenderer(renderer.Element, null); - renderer.SetElement(view); - } + if (renderer == oldRenderer) + { + Platform.SetRenderer(renderer.Element, null); + renderer.SetElement(view); + } - Performance.Start("Set renderer"); - Platform.SetRenderer(view, renderer); - Performance.Stop("Set renderer"); + Performance.Start("Set renderer"); + Platform.SetRenderer(view, renderer); + Performance.Stop("Set renderer"); - Performance.Start("Add view"); - if (!sameChildren) - { - (_renderer.View as ViewGroup)?.AddView(renderer.View); - _childViews.Add(renderer); + Performance.Start("Add view"); + if (!sameChildren) + { + (_renderer.View as ViewGroup)?.AddView(renderer.View); + _childViews.Add(renderer); + } + Performance.Stop("Add view"); } - Performance.Stop("Add view"); - Performance.Stop(); } @@ -117,7 +125,8 @@ namespace Xamarin.Forms.Platform.Android if (element != null) { IVisualElementRenderer r = Platform.GetRenderer(element); - (_renderer.View as ViewGroup)?.BringChildToFront(r.View); + if (r != null) + (_renderer.View as ViewGroup)?.BringChildToFront(r.View); } } } diff --git a/Xamarin.Forms.Platform.Android/VisualElementRenderer.cs b/Xamarin.Forms.Platform.Android/VisualElementRenderer.cs index 098e85f6..d580a0bb 100644 --- a/Xamarin.Forms.Platform.Android/VisualElementRenderer.cs +++ b/Xamarin.Forms.Platform.Android/VisualElementRenderer.cs @@ -283,13 +283,20 @@ namespace Xamarin.Forms.Platform.Android return; ReadOnlyCollection<Element> children = ((IElementController)Element).LogicalChildren; - foreach (Element element in children) - { + UpdateLayout(((IElementController)Element).LogicalChildren); + } + + static void UpdateLayout(IEnumerable<Element> children) + { + foreach (Element element in children) { var visualElement = element as VisualElement; if (visualElement == null) continue; IVisualElementRenderer renderer = Platform.GetRenderer(visualElement); + if (renderer == null && CompressedLayout.GetIsHeadless(visualElement)) + UpdateLayout(visualElement.LogicalChildren); + renderer?.UpdateLayout(); } } diff --git a/Xamarin.Forms.Platform.Android/VisualElementTracker.cs b/Xamarin.Forms.Platform.Android/VisualElementTracker.cs index f4436209..76533005 100644 --- a/Xamarin.Forms.Platform.Android/VisualElementTracker.cs +++ b/Xamarin.Forms.Platform.Android/VisualElementTracker.cs @@ -78,8 +78,9 @@ namespace Xamarin.Forms.Platform.Android VisualElement view = _renderer.Element; AView aview = _renderer.View; - var x = (int)_context.ToPixels(view.X); - var y = (int)_context.ToPixels(view.Y); + var headlessOffset = CompressedLayout.GetHeadlessOffset(view); + var x = (int)_context.ToPixels(view.X + headlessOffset.X); + var y = (int)_context.ToPixels(view.Y + headlessOffset.Y); var width = Math.Max(0, (int)_context.ToPixels(view.Width)); var height = Math.Max(0, (int)_context.ToPixels(view.Height)); diff --git a/Xamarin.Forms.Platform.iOS/RendererPool.cs b/Xamarin.Forms.Platform.iOS/RendererPool.cs index 563201f0..e95148da 100644 --- a/Xamarin.Forms.Platform.iOS/RendererPool.cs +++ b/Xamarin.Forms.Platform.iOS/RendererPool.cs @@ -108,10 +108,14 @@ namespace Xamarin.Forms.Platform.MacOS var child = logicalChild as VisualElement; if (child != null) { - var renderer = GetFreeRenderer(child) ?? Platform.CreateRenderer(child); - Platform.SetRenderer(child, renderer); - - _parent.NativeView.AddSubview(renderer.NativeView); + if (CompressedLayout.GetIsHeadless(child)) { + child.IsPlatformEnabled = true; + FillChildrenWithRenderers(child); + } else { + var renderer = GetFreeRenderer(child) ?? Platform.CreateRenderer(child); + Platform.SetRenderer(child, renderer); + _parent.NativeView.AddSubview(renderer.NativeView); + } } } } diff --git a/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs b/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs index fa91cf6a..72ab654a 100644 --- a/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs +++ b/Xamarin.Forms.Platform.iOS/VisualElementPackager.cs @@ -13,16 +13,20 @@ namespace Xamarin.Forms.Platform.MacOS bool _isDisposed; - IElementController ElementController => Renderer.Element as IElementController; + IElementController ElementController => _element; - public VisualElementPackager(IVisualElementRenderer renderer) + public VisualElementPackager(IVisualElementRenderer renderer) : this(renderer, null) + { + } + + VisualElementPackager(IVisualElementRenderer renderer, VisualElement element) { if (renderer == null) throw new ArgumentNullException(nameof(renderer)); Renderer = renderer; renderer.ElementChanged += OnRendererElementChanged; - SetElement(null, renderer.Element); + SetElement(null, element ?? renderer.Element); } protected IVisualElementRenderer Renderer { get; set; } @@ -65,16 +69,22 @@ namespace Xamarin.Forms.Platform.MacOS if (_isDisposed) return; - var viewRenderer = Platform.CreateRenderer(view); - Platform.SetRenderer(view, viewRenderer); + if (CompressedLayout.GetIsHeadless(view)) { + var packager = new VisualElementPackager(Renderer, view); + view.IsPlatformEnabled = true; + packager.Load(); + } else { + var viewRenderer = Platform.CreateRenderer(view); + Platform.SetRenderer(view, viewRenderer); - var uiview = Renderer.NativeView; - uiview.AddSubview(viewRenderer.NativeView); + var uiview = Renderer.NativeView; + uiview.AddSubview(viewRenderer.NativeView); - if (Renderer.ViewController != null && viewRenderer.ViewController != null) - Renderer.ViewController.AddChildViewController(viewRenderer.ViewController); + if (Renderer.ViewController != null && viewRenderer.ViewController != null) + Renderer.ViewController.AddChildViewController(viewRenderer.ViewController); - EnsureChildrenOrder(); + EnsureChildrenOrder(); + } } protected virtual void OnChildRemoved(VisualElement view) diff --git a/Xamarin.Forms.Platform.iOS/VisualElementTracker.cs b/Xamarin.Forms.Platform.iOS/VisualElementTracker.cs index 5c84b991..68625a32 100644 --- a/Xamarin.Forms.Platform.iOS/VisualElementTracker.cs +++ b/Xamarin.Forms.Platform.iOS/VisualElementTracker.cs @@ -138,8 +138,8 @@ namespace Xamarin.Forms.Platform.MacOS var scale = (float)view.Scale; var width = (float)view.Width; var height = (float)view.Height; - var x = (float)view.X; - var y = (float)view.Y; + var x = (float)view.X + (float)CompressedLayout.GetHeadlessOffset(view).X; + var y = (float)view.Y + (float)CompressedLayout.GetHeadlessOffset(view).Y; var opacity = (float)view.Opacity; var isVisible = view.IsVisible; diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/CompressedLayout.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/CompressedLayout.xml new file mode 100644 index 00000000..55991a89 --- /dev/null +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/CompressedLayout.xml @@ -0,0 +1,119 @@ +<Type Name="CompressedLayout" FullName="Xamarin.Forms.CompressedLayout"> + <TypeSignature Language="C#" Value="public static class CompressedLayout" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit CompressedLayout extends System.Object" /> + <AssemblyInfo> + <AssemblyName>Xamarin.Forms.Core</AssemblyName> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="GetHeadlessOffset"> + <MemberSignature Language="C#" Value="public static Xamarin.Forms.Point GetHeadlessOffset (Xamarin.Forms.BindableObject bindable);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype Xamarin.Forms.Point GetHeadlessOffset(class Xamarin.Forms.BindableObject bindable) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>Xamarin.Forms.Point</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="bindable" Type="Xamarin.Forms.BindableObject" /> + </Parameters> + <Docs> + <param name="bindable">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="GetIsHeadless"> + <MemberSignature Language="C#" Value="public static bool GetIsHeadless (Xamarin.Forms.BindableObject bindable);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool GetIsHeadless(class Xamarin.Forms.BindableObject bindable) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="bindable" Type="Xamarin.Forms.BindableObject" /> + </Parameters> + <Docs> + <param name="bindable">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="HeadlessOffsetProperty"> + <MemberSignature Language="C#" Value="public static readonly Xamarin.Forms.BindableProperty HeadlessOffsetProperty;" /> + <MemberSignature Language="ILAsm" Value=".field public static initonly class Xamarin.Forms.BindableProperty HeadlessOffsetProperty" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>Xamarin.Forms.BindableProperty</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="IsHeadlessProperty"> + <MemberSignature Language="C#" Value="public static readonly Xamarin.Forms.BindableProperty IsHeadlessProperty;" /> + <MemberSignature Language="ILAsm" Value=".field public static initonly class Xamarin.Forms.BindableProperty IsHeadlessProperty" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Xamarin.Forms.BindableProperty</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="SetIsHeadless"> + <MemberSignature Language="C#" Value="public static void SetIsHeadless (Xamarin.Forms.BindableObject bindable, bool value);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetIsHeadless(class Xamarin.Forms.BindableObject bindable, bool value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="bindable" Type="Xamarin.Forms.BindableObject" /> + <Parameter Name="value" Type="System.Boolean" /> + </Parameters> + <Docs> + <param name="bindable">To be added.</param> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/docs/Xamarin.Forms.Core/index.xml b/docs/Xamarin.Forms.Core/index.xml index 1b13e335..78ae452a 100644 --- a/docs/Xamarin.Forms.Core/index.xml +++ b/docs/Xamarin.Forms.Core/index.xml @@ -182,6 +182,7 @@ <Type Name="ColumnDefinitionCollection" Kind="Class" /> <Type Name="Command" Kind="Class" /> <Type Name="Command`1" DisplayName="Command<T>" Kind="Class" /> + <Type Name="CompressedLayout" Kind="Class" /> <Type Name="Condition" Kind="Class" /> <Type Name="Configuration`2" DisplayName="Configuration<TPlatform,TElement>" Kind="Class" /> <Type Name="Constraint" Kind="Class" /> |