Пример #1
0
 protected virtual SnapManager GetSnapManager()
 {
     if (_snapManager == null)
     {
         _snapManager = new SnapManager(ItemsLayout, this);
     }
     return(_snapManager);
 }
Пример #2
0
        protected virtual void UpdateSnapBehavior()
        {
            if (_snapManager == null)
            {
                _snapManager = new SnapManager(ItemsView, this);
            }

            _snapManager.UpdateSnapBehavior();
        }
        protected virtual void TearDownOldElement(ItemsView oldElement)
        {
            if (oldElement == null)
            {
                return;
            }

            // Stop listening for layout property changes
            if (_layout != null)
            {
                _layout.PropertyChanged -= LayoutPropertyChanged;
            }

            // Stop listening for property changes
            oldElement.PropertyChanged -= OnElementPropertyChanged;

            // Stop listening for ScrollTo requests
            oldElement.ScrollToRequested -= ScrollToRequested;

            if (_recyclerViewScrollListener != null)
            {
                _recyclerViewScrollListener.Dispose();
                ClearOnScrollListeners();
                _recyclerViewScrollListener = null;
            }

            if (ItemsViewAdapter != null)
            {
                // Stop watching for empty items or scroll adjustments
                _emptyCollectionObserver.Stop(ItemsViewAdapter);
                _itemsUpdateScrollObserver.Stop(ItemsViewAdapter);

                // Unhook whichever adapter is active
                SetAdapter(null);

                _emptyViewAdapter?.Dispose();
                ItemsViewAdapter?.Dispose();
            }

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

            if (_itemDecoration != null)
            {
                RemoveItemDecoration(_itemDecoration);
            }
        }
Пример #4
0
        protected virtual void TearDownOldElement(ItemsView oldElement)
        {
            if (oldElement == null)
            {
                return;
            }

            // Stop listening for layout property changes
            if (_layout != null)
            {
                _layout.PropertyChanged -= LayoutOnPropertyChanged;
            }

            // Stop listening for property changes
            oldElement.PropertyChanged -= OnElementPropertyChanged;

            // Stop listening for ScrollTo requests
            oldElement.ScrollToRequested -= ScrollToRequested;

            if (ItemsViewAdapter != null)
            {
                Unwatch(ItemsViewAdapter);

                SetAdapter(null);

                ItemsViewAdapter.Dispose();
            }

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

            if (_itemDecoration != null)
            {
                RemoveItemDecoration(_itemDecoration);
            }
        }
Пример #5
0
        protected virtual void UpdateSnapBehavior()
        {
            _snapManager = GetSnapManager();

            _snapManager.UpdateSnapBehavior();
        }