protected override void ScrollTo(ScrollToRequestEventArgs args)
        {
            var position = DetermineTargetPosition(args);

            if (_carouselViewLoopManager == null)
            {
                return;
            }

            // Special case here
            // We could have a race condition where we are scrolling our collection to center the first item
            // And at the same time the user is requesting we go to a particular item
            if (position == -1)
            {
                if (Carousel.Loop)
                {
                    _carouselViewLoopManager.AddPendingScrollTo(args);
                }

                return;
            }

            if (args.IsAnimated)
            {
                ScrollHelper.AnimateScrollToPosition(position, args.ScrollToPosition);
            }
            else
            {
                ScrollHelper.JumpScrollToPosition(position, args.ScrollToPosition);
            }
        }
Exemple #2
0
        protected virtual void ScrollTo(ScrollToRequestEventArgs args)
        {
            if (ItemsView == null)
            {
                return;
            }

            var position = DetermineTargetPosition(args);

            if (args.IsAnimated)
            {
                ScrollHelper.AnimateScrollToPosition(position, args.ScrollToPosition);
            }
            else
            {
                ScrollHelper.JumpScrollToPosition(position, args.ScrollToPosition);
            }
        }