Ejemplo n.º 1
0
        protected override void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

            if (disposing)
            {
                Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;

                if (Element != null)
                {
                    MasterDetailPageController.BackButtonPressed -= OnBackButtonPressed;
                    Element.PropertyChanged -= HandlePropertyChanged;
                    Element.Appearing       -= MasterDetailPageAppearing;
                    Element.Disappearing    -= MasterDetailPageDisappearing;
                }

                if (_masterLayout?.ChildView != null)
                {
                    _masterLayout.ChildView.PropertyChanged -= HandleMasterPropertyChanged;
                }

                if (!this.IsDisposed())
                {
                    RemoveDrawerListener(this);
                }

                if (_tracker != null)
                {
                    _tracker.Dispose();
                    _tracker = null;
                }

                if (_detailLayout != null)
                {
                    RemoveView(_detailLayout);
                    _detailLayout.Dispose();
                    _detailLayout = null;
                }

                if (_masterLayout != null)
                {
                    RemoveView(_masterLayout);
                    _masterLayout.Dispose();
                    _masterLayout = null;
                }

                if (Element != null)
                {
                    Element.ClearValue(Android.Platform.RendererProperty);
                    Element = null;
                }
            }

            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                _disposed = true;

                if (_tracker != null)
                {
                    _tracker.Dispose();
                    _tracker = null;
                }

                if (_detailLayout != null)
                {
                    _detailLayout.Dispose();
                    _detailLayout = null;
                }

                if (_masterLayout != null)
                {
                    _masterLayout.Dispose();
                    _masterLayout = null;
                }

                Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;

                if (Element != null)
                {
                    MasterDetailPageController.BackButtonPressed -= OnBackButtonPressed;
                    Element.PropertyChanged -= HandlePropertyChanged;
                    Element.Appearing       -= MasterDetailPageAppearing;
                    Element.Disappearing    -= MasterDetailPageDisappearing;
                    Element.ClearValue(Android.Platform.RendererProperty);
                    Element = null;
                }
            }

            base.Dispose(disposing);
        }