public LightweightPlatform(EvasObject parent) { Forms.NativeParent = parent; _defaultPlatformColor = Device.Idiom == TargetIdiom.Phone ? EColor.White : EColor.Transparent; _viewStack = new Native.Canvas(parent) { BackgroundColor = _defaultPlatformColor, }; _viewStack.SetAlignment(-1, -1); _viewStack.SetWeight(1.0, 1.0); _viewStack.LayoutUpdated += OnLayout; _viewStack.Show(); if (Forms.UseMessagingCenter) { _popupManager = new PopupManager(this); } }
/// <summary> /// Composes the structure of all the necessary widgets. /// </summary> void ConfigureLayout() { _drawer.SetContent(null, true); _drawer.Hide(); _splitPane.SetPartContent("left", null, true); _splitPane.SetPartContent("right", null, true); _splitPane.Hide(); UnPackAll(); // the structure for split mode and for popover mode looks differently if (IsSplit) { _splitPane.SetPartContent("left", _masterCanvas, true); _splitPane.SetPartContent("right", _detailCanvas, true); _splitPane.Show(); _mainWidget = _splitPane; PackEnd(_splitPane); IsPresented = true; UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs(false)); UpdateFocusPolicy(true); } else { _drawer.SetContent(_masterCanvas, true); _drawer.Show(); _mainWidget = _detailCanvas; PackEnd(_detailCanvas); PackEnd(_drawer); _drawer.IsOpen = IsPresented; UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs(true)); UpdateFocusPolicy(); } _masterCanvas.Show(); _detailCanvas.Show(); // even though child was changed, Layout callback was not called, so i manually call layout function. // Layout callback was filter out when geometry was not changed in Native.Box UpdateChildCanvasGeometry(); }
/// <summary> /// Composes the structure of all the necessary widgets. /// </summary> void ConfigureLayout() { _drawer.SetContent(null, true); _drawer.Hide(); _splitPane.SetPartContent("left", null, true); _splitPane.SetPartContent("right", null, true); _splitPane.Hide(); UnPackAll(); // the structure for split mode and for popover mode looks differently if (_internalMasterBehavior == MasterBehavior.Split) { _splitPane.SetPartContent("left", _masterCanvas, true); _splitPane.SetPartContent("right", _detailCanvas, true); _splitPane.Show(); _mainWidget = _splitPane; PackEnd(_splitPane); IsPresented = true; UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs { CanChange = false }); } else { _drawer.SetContent(_masterCanvas, true); _drawer.Show(); _mainWidget = _detailCanvas; PackEnd(_detailCanvas); PackEnd(_drawer); _drawer.IsOpen = IsPresented; UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs { CanChange = false }); } _masterCanvas.Show(); _detailCanvas.Show(); }