internal nfloat CalculateHeightForCell(UITableView tableView, Cell cell) { var viewCell = cell as ViewCell; if (viewCell != null && viewCell.View != null) { var target = viewCell.View; if (_prototype == null) { _prototype = Platform.CreateRenderer(target); Platform.SetRenderer(target, _prototype); } else { _prototype.SetElement(target); Platform.SetRenderer(target, _prototype); } var req = target.Measure(tableView.Frame.Width, double.PositiveInfinity, MeasureFlags.IncludeMargins); target.ClearValue(Platform.RendererProperty); foreach (var descendant in target.Descendants()) { descendant.ClearValue(Platform.RendererProperty); } return((nfloat)req.Request.Height); } var renderHeight = cell.RenderHeight; return(renderHeight > 0 ? (nfloat)renderHeight : DefaultRowHeight); }
internal static IVisualElementRenderer CreateRenderer(VisualElement element) { IVisualElementRenderer renderer = Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(element) ?? new DefaultRenderer(); renderer.SetElement(element); return(renderer); }
public static IVisualElementRenderer CreateRenderer(VisualElement element) { IVisualElementRenderer result = Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(element) ?? new ViewRenderer(); result.SetElement(element); return(result); }
private void UpdateRenderers(Element newElement) { if (newElement.LogicalChildren.Count == 0) { return; } foreach (NSView uiView in this.parent.NativeView.Subviews) { IVisualElementRenderer visualElementRenderer = uiView as IVisualElementRenderer; if (visualElementRenderer != null) { int index = (int)visualElementRenderer.NativeView.Layer.ZPosition / 1000; VisualElement visualElement = newElement.LogicalChildren[index] as VisualElement; if (visualElement != null) { if (visualElementRenderer.Element != null && visualElementRenderer == Platform.GetRenderer(visualElementRenderer.Element)) { visualElementRenderer.Element.ClearValue(Platform.RendererProperty); } visualElementRenderer.SetElement(visualElement); Platform.SetRenderer(visualElement, visualElementRenderer); } } } }
public static IVisualElementRenderer CreateRenderer(VisualElement element) { IVisualElementRenderer result = Registrar.Registered.GetHandler <IVisualElementRenderer>(element.GetType()) ?? new DefaultViewRenderer(); result.SetElement(element); return(result); }
internal static IVisualElementRenderer AttachRenderer(VisualElement view) { IVisualElementRenderer visualElementRenderer = Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(view) ?? new DefaultRenderer(); visualElementRenderer.SetElement(view); return(visualElementRenderer); }
void AddChild(VisualElement view, IVisualElementRenderer oldRenderer = null, RendererPool pool = null, bool sameChildren = false) { var reference = Guid.NewGuid().ToString(); Performance.Start(reference); if (CompressedLayout.GetIsHeadless(view)) { var packager = new VisualElementPackager(_renderer, view); if (_childPackagers == null) { _childPackagers = new Dictionary <BindableObject, VisualElementPackager>(); } view.IsPlatformEnabled = true; packager.Load(); _childPackagers[view] = packager; } else { if (_childViews == null) { _childViews = new List <IVisualElementRenderer>(); } IVisualElementRenderer renderer = oldRenderer; if (pool != null) { renderer = pool.GetFreeRenderer(view); } if (renderer == null) { Performance.Start(reference, "New renderer"); renderer = Platform.CreateRenderer(view, _renderer.View.Context); Performance.Stop(reference, "New renderer"); } if (renderer == oldRenderer) { Platform.SetRenderer(renderer.Element, null); renderer.SetElement(view); } Performance.Start(reference, "Set renderer"); Platform.SetRenderer(view, renderer); Performance.Stop(reference, "Set renderer"); Performance.Start(reference, "Add view"); if (!sameChildren) { (_renderer.View as ViewGroup)?.AddView(renderer.View); _childViews.Add(renderer); } Performance.Stop(reference, "Add view"); Performance.Stop(reference); } }
internal static IVisualElementRenderer CreateRenderer(VisualElement element, Context context) { IVisualElementRenderer renderer = Registrar.Registered.GetHandler <IVisualElementRenderer>(element.GetType(), context) ?? new DefaultRenderer(context); renderer.SetElement(element); return(renderer); }
internal static IVisualElementRenderer CreateRenderer(VisualElement element, Context context) { IVisualElementRenderer renderer = Xamarin.Forms.Internals.Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(element, context) ?? new DefaultRenderer(context); renderer.SetElement(element); return(renderer); }
public static IVisualElementRenderer CreateRenderer(VisualElement element) { UpdateGlobalContext(element); IVisualElementRenderer renderer = Registrar.Registered.GetHandler <IVisualElementRenderer>(element.GetType()) ?? new DefaultRenderer(); renderer.SetElement(element); return(renderer); }
internal static IVisualElementRenderer CreateRenderer(VisualElement element, RenderHandle renderHandle = default) { IVisualElementRenderer renderer = Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(element) ?? new DefaultRenderer(); var componentContainer = ((ComponentContainer)renderer.ComponentContainer); componentContainer._renderHandle = renderHandle; //renderer.ComponentContainer.Configure(renderHandle); renderer.SetElement(element); return(renderer); }
internal static IVisualElementRenderer CreateRenderer(VisualElement element, AndroidX.Fragment.App.FragmentManager fragmentManager, Context context) { IVisualElementRenderer renderer = CreateRenderer(element, context); var managesFragments = renderer as IManageFragments; managesFragments?.SetFragmentManager(fragmentManager); renderer.SetElement(element); return(renderer); }
public static IVisualElementRenderer CreateRenderer(VisualElement element) { if (element == null) { throw new ArgumentNullException("element"); } IVisualElementRenderer renderer = Registrar.Registered.GetHandler <IVisualElementRenderer>(element.GetType()) ?? new DefaultRenderer(); renderer.SetElement(element); return(renderer); }
internal static IVisualElementRenderer CreateRenderer(VisualElement element, FragmentManager fragmentManager, Context context) { IVisualElementRenderer renderer = Registrar.Registered.GetHandler <IVisualElementRenderer>(element.GetType(), context) ?? new DefaultRenderer(context); var managesFragments = renderer as IManageFragments; managesFragments?.SetFragmentManager(fragmentManager); renderer.SetElement(element); return(renderer); }
internal static IVisualElementRenderer CreateRenderer(VisualElement element, FragmentManager fragmentManager) { UpdateGlobalContext(element); IVisualElementRenderer renderer = Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(element) ?? new DefaultRenderer(); var managesFragments = renderer as IManageFragments; managesFragments?.SetFragmentManager(fragmentManager); renderer.SetElement(element); return(renderer); }
void AddChild(VisualElement view, IVisualElementRenderer oldRenderer = null, RendererPool pool = null, bool sameChildren = false) { Performance.Start(); 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"); } 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("Add view"); if (!sameChildren) { (_renderer.View as ViewGroup)?.AddView(renderer.View); _childViews.Add(renderer); } Performance.Stop("Add view"); } Performance.Stop(); }
public static IVisualElementRenderer CreateRenderer(VisualElement element, IVisualElementRenderer parent) { if (element == null) { throw new ArgumentNullException(nameof(element)); } IVisualElementRenderer renderer = parent?.CreateChildRenderer(element); if (renderer == null) { renderer = Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(element) ?? new DefaultRenderer(); } renderer.SetElement(element); return(renderer); }
public IVisualElementRenderer GetFreeRenderer(VisualElement view) { if (view == null) { throw new ArgumentNullException("view"); } Stack <IVisualElementRenderer> stack; if (!this.freeRenderers.TryGetValue(Registrar.Registered.GetHandlerType((view).GetType()) ?? typeof(ViewRenderer), out stack) || stack.Count == 0) { return((IVisualElementRenderer)null); } IVisualElementRenderer visualElementRenderer = stack.Pop(); VisualElement element = view; visualElementRenderer.SetElement(element); return(visualElementRenderer); }
public float CalculateHeightForCell(FastListView.Forms.VisualElements.FastListView fastListView, ViewCell cell) { var target = cell.View; if (_renderer == null) { _renderer = Platform.CreateRendererWithContext(target, Android.App.Application.Context); } else { _renderer.SetElement(target); } Platform.SetRenderer(target, _renderer); var req = target.Measure(fastListView.Width, double.PositiveInfinity, MeasureFlags.IncludeMargins); return((float)req.Request.Height); }
public nfloat CalculateHeightForCell(UICollectionView collectionView, ViewCell cell) { var target = cell.View; if (_renderer == null) { _renderer = Platform.CreateRenderer(target); } else { _renderer.SetElement(target); } Platform.SetRenderer(target, _renderer); var req = target.Measure(collectionView.Frame.Width, double.PositiveInfinity, MeasureFlags.IncludeMargins); return((nfloat)req.Request.Height); }
void AddChild(VisualElement view, IVisualElementRenderer oldRenderer = null, RendererPool pool = null, bool sameChildren = false) { Performance.Start(); 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"); } 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("Add view"); if (!sameChildren) { _renderer.ViewGroup.AddView(renderer.ViewGroup); _childViews.Add(renderer); } Performance.Stop("Add view"); Performance.Stop(); }
public IVisualElementRenderer GetFreeRenderer(VisualElement view) { if (view == null) { throw new ArgumentNullException("view"); } Type rendererType = Registrar.Registered.GetHandlerType(view.GetType()) ?? typeof(ViewRenderer); Stack <IVisualElementRenderer> renderers; if (!_freeRenderers.TryGetValue(rendererType, out renderers) || renderers.Count == 0) { return(null); } IVisualElementRenderer renderer = renderers.Pop(); renderer.SetElement(view); return(renderer); }
public static IVisualElementRenderer CreateRenderer(VisualElement element, IVisualElementRenderer parent) { if (element == null) { throw new ArgumentNullException(nameof(element)); } IVisualElementRenderer renderer = parent?.CreateChildRenderer(element); if (renderer == null) { // a page is not a view /* if (element is Page) * renderer = new PageRenderer<Page, Control>(); * else*/ renderer = Registrar.Registered.GetHandlerForObject <IVisualElementRenderer>(element) ?? new DefaultRenderer(); } renderer.SetElement(element); return(renderer); }