void Destroy() { if (_rootView != null) { UnhookEvents(); _viewPager.RemoveOnPageChangeListener(this); var adapter = _viewPager.Adapter; _viewPager.Adapter = null; adapter.Dispose(); _tablayout.LayoutChange -= OnTabLayoutChange; _toolbarAppearanceTracker.Dispose(); _tabLayoutAppearanceTracker.Dispose(); _toolbarTracker.Dispose(); _tablayout.Dispose(); _toolbar.Dispose(); _viewPager.Dispose(); _rootView.Dispose(); } _toolbarAppearanceTracker = null; _tabLayoutAppearanceTracker = null; _toolbarTracker = null; _tablayout = null; _toolbar = null; _viewPager = null; _rootView = null; }
void Destroy() { ((IShellController)_shellContext.Shell).RemoveAppearanceObserver(this); if (_shellContent != null) { ((IShellContentController)_shellContent).RecyclePage(_page); _page.ClearValue(AppCompat.Platform.RendererProperty); _page = null; } if (_shellPageContainer != null) { _shellPageContainer.RemoveAllViews(); if (_root is ViewGroup vg) { vg.RemoveView(_shellPageContainer); } } _renderer?.Dispose(); _root?.Dispose(); _toolbarTracker?.Dispose(); _appearanceTracker?.Dispose(); _appearanceTracker = null; _toolbarTracker = null; _toolbar = null; _root = null; _renderer = null; _shellContent = null; }
void Destroy() { ((IShellController)_shellContext.Shell).RemoveAppearanceObserver(this); if (_shellContent != null) { ((IShellContentController)_shellContent).RecyclePage(_page); _page.Handler = null; } if (_shellPageContainer != null) { _shellPageContainer.RemoveAllViews(); if (_root is ViewGroup vg) { vg.RemoveView(_shellPageContainer); } _shellPageContainer.Dispose(); } _root?.Dispose(); _toolbarTracker?.Dispose(); _appearanceTracker?.Dispose(); _appearanceTracker = null; _toolbarTracker = null; _toolbar = null; _root = null; _viewhandler = null; _shellContent = null; _shellPageContainer = null; }
// Use OnDestroy instead of OnDestroyView because OnDestroyView will be // called before the animation completes. This causes tons of tiny issues. public override void OnDestroy() { base.OnDestroy(); if (_rootView != null) { UnhookEvents(); var adapter = _viewPager.Adapter; _viewPager.Adapter = null; adapter.Dispose(); _toolbarAppearanceTracker.Dispose(); _tabLayoutAppearanceTracker.Dispose(); _viewPager.RemoveOnPageChangeListener(this); _rootView.Dispose(); _toolbarTracker.Dispose(); _tablayout.Dispose(); _toolbar.Dispose(); _viewPager.Dispose(); _rootView.Dispose(); } _toolbarAppearanceTracker = null; _tabLayoutAppearanceTracker = null; _toolbarTracker = null; _toolbar = null; _tablayout = null; _rootView = null; _viewPager = null; }
// Use OnDestroy instead of OnDestroyView because OnDestroyView will be // called before the animation completes. This causes tons of tiny issues. public override void OnDestroy() { base.OnDestroy(); _shellPageContainer.RemoveAllViews(); _renderer?.Dispose(); _root?.Dispose(); _toolbarTracker.Dispose(); _appearanceTracker.Dispose(); ((IShellController)_shellContext.Shell).RemoveAppearanceObserver(this); if (_shellContent != null) { ((IShellContentController)_shellContent).RecyclePage(_page); _page.ClearValue(Platform.RendererProperty); _page = null; } _appearanceTracker = null; _toolbar = null; _toolbarTracker = null; _root = null; _renderer = null; }