コード例 #1
0
        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;
                }
            };
        }
コード例 #2
0
        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;
                }
            };
        }
コード例 #3
0
        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();
            };
        }
コード例 #4
0
        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;
                }
            };
        }