void LayoutPopup() { if (!CheckPageAndPopup()) { return; } _popupBasePage.ShowPopupAction = (key) => { if (!string.IsNullOrEmpty(_currentPopup)) { return; } SlidePopupView popup = null; if (!_popupBasePage.PopupViews.ContainsKey(key)) { if (string.IsNullOrEmpty(key) && _popupBasePage.PopupViews.Count == 1) { popup = _popupBasePage.PopupViews.Values.GetEnumerator().Current; } if (popup == null) { return; } } _currentPopup = key; popup = _popupBasePage.PopupViews [_currentPopup] as SlidePopupView; var renderer = Platform.CreateRenderer(popup); Platform.SetRenderer(popup, renderer); _popupNativeView = renderer.NativeView; CGRect pos = GetPopupPositionAndLayout(); if (pos.IsEmpty) { return; } _popupNativeView.Hidden = false; if (_popupNativeView != null) { ShowBackgroundForPopup(popup.BackgroundViewColor.ToUIColor()); popup.IsShown = true; } popup.HideMySelf = () => { HideBackgroundForPopup(); popup.IsShown = false; }; }; _popupBasePage.HidePopupAction = () => { HideBackgroundForPopup(); var popup = _popupBasePage.PopupViews.Values.Where(o => o.IsShown).FirstOrDefault(); if (popup != null) { popup.IsShown = false; } }; }
void AddPopup() { if (_popupBasePage == null) { return; } _popupBasePage.ShowPopupAction = (key) => { if (!string.IsNullOrEmpty(_currentPopup)) { return; } SlidePopupView popup = null; if (!_popupBasePage.PopupViews.ContainsKey(key)) { if (string.IsNullOrEmpty(key) && _popupBasePage.PopupViews.Count == 1) { popup = _popupBasePage.PopupViews.Values.GetEnumerator().Current; } if (popup == null) { return; } } _currentPopup = key; popup = _popupBasePage.PopupViews [_currentPopup] as SlidePopupView; popup.Parent = (Page)_popupBasePage; _popupRenderer = Platform.CreateRendererWithContext(popup, _context); Platform.SetRenderer(popup, _popupRenderer); var rect = LayoutPopup(); _popupRenderer.View.Visibility = ViewStates.Visible; _popupRenderer.View.Layout((int)rect.left, (int)rect.top, (int)rect.right, (int)rect.bottom); ShowBackgroundForPopup(popup.BackgroundViewColor.ToAndroid()); _pageRenderer.ViewGroup.AddView(_popupRenderer.View); _pageRenderer.ViewGroup.BringChildToFront(_popupRenderer.View); popup.IsShown = true; popup.HideMySelf = () => { HideBackgroundForPopup(); popup.IsShown = false; }; }; _popupBasePage.HidePopupAction = () => { HideBackgroundForPopup(); var popup = _popupBasePage.PopupViews.Values.Where(o => o.IsShown).FirstOrDefault(); if (popup != null) { popup.IsShown = false; } }; }
void AddPopup() { if (_popupBasePage == null) { return; } _popupBasePage.ShowPopupAction = (key) => { if (!string.IsNullOrEmpty(_currentPopup)) { return; } SlidePopupView popup = null; if (!_popupBasePage.PopupViews.ContainsKey(key)) { if (string.IsNullOrEmpty(key) && _popupBasePage.PopupViews.Count == 1) { popup = _popupBasePage.PopupViews.Values.GetEnumerator().Current; } if (popup == null) { return; } } _currentPopup = key; popup = _popupBasePage.PopupViews [_currentPopup] as SlidePopupView; _popupRenderer = RendererFactory.GetRenderer(popup); var rect = LayoutPopup(); _popupRenderer.ViewGroup.Visibility = ViewStates.Visible; _popupRenderer.ViewGroup.Layout((int)rect.left, (int)rect.top, (int)rect.right, (int)rect.bottom); ShowBackgroundForPopup(popup.BackgroundViewColor.ToAndroid()); _pageRenderer.ViewGroup.AddView(_popupRenderer.ViewGroup); _pageRenderer.ViewGroup.BringChildToFront(_popupRenderer.ViewGroup); popup.HideMySelf = () => { HideBackgroundForPopup(); }; }; _popupBasePage.HidePopupAction = () => { HideBackgroundForPopup(); }; }
private void LayoutPopup() { if (!CheckPageAndPopup()) { return; } _popupBasePage.ShowPopupAction = (key) => { if (!string.IsNullOrEmpty(_currentPopup)) { return; } SlidePopupView popup = null; if (!_popupBasePage.PopupViews.ContainsKey(key)) { if (string.IsNullOrEmpty(key) && _popupBasePage.PopupViews.Count == 1) { popup = _popupBasePage.PopupViews.Values.GetEnumerator().Current; } if (popup == null) { return; } } _currentPopup = key; popup = _popupBasePage.PopupViews[_currentPopup] as SlidePopupView; var renderer = popup.GetOrCreateRenderer(); _popupRenderer = renderer as FrameRenderer; if (_popupRenderer != null) { if (!PopupLayout()) { return; } _mainCanvas.Children.Add(_popupRenderer); Canvas.SetZIndex(_popupRenderer, 254); _popupRenderer.Visibility = Visibility.Visible; ShowBackgroundForPopup(popup.BackgroundViewColor); popup.IsShown = true; } popup.HideMySelf = () => { HideBackgroundForPopup(); popup.IsShown = false; }; }; _popupBasePage.HidePopupAction = () => { HideBackgroundForPopup(); var popup = _popupBasePage.PopupViews.Values.Where(o => o.IsShown).FirstOrDefault(); if (popup != null) { popup.IsShown = false; } }; }