Exemplo n.º 1
0
 private void CarouselView_UserInteracted(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args)
 {
     if (args.Status == PanCardView.Enums.UserInteractionStatus.Started)
     {
         MainPage.DisableSwipe();
     }
 }
Exemplo n.º 2
0
        private void MainCardView_UserInteracted(PanCardView.CardsView view,
                                                 PanCardView.EventArgs.UserInteractedEventArgs args)
        {
            var card = MainCardView.CurrentView as HeroCard;


            if (args.Status == PanCardView.Enums.UserInteractionStatus.Running)
            {
                // work out what percent the swipe is at
                var percentFromCenter = Math.Abs(args.Diff / this.Width);
                Debug.WriteLine($"Percent {percentFromCenter}");

                var opacity = (1 - (percentFromCenter)) * 1.5;
                if (opacity > 1)
                {
                    opacity = 1;
                }

                MainCardView.CurrentView.Opacity = opacity;

                // do the scaling on the main card during swipe
                var scale = (1 - (percentFromCenter) * 1.5);
                if (scale > 1)
                {
                    scale = 1;
                }
                card.MainImage.Scale = scale;

                var imageBaseMargin = -150;
                var movementFactor  = 100;

                var translation = imageBaseMargin + (movementFactor * percentFromCenter);
                card.MainImage.TranslationY = translation;

                // adjust opacity of image
                card.MainImage.Opacity = opacity;
                var nextCard = MainCardView.CurrentBackViews.First() as HeroCard;

                // adjust opacity of the back image
                nextCard.MainImage.Opacity = LimitToRange(percentFromCenter * 1.5, 0, 1);
                nextCard.MainImage.Scale   = LimitToRange(percentFromCenter * 1.5, 0, 1);

                // percent => 0, 0
                // percent => .5 => -75
                // percent => 1, -150
                nextCard.MainImage.TranslationY = LimitToRange((imageBaseMargin * percentFromCenter) * 1.5, -150, 0);
            }

            if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended ||
                args.Status == PanCardView.Enums.UserInteractionStatus.Ending)
            {
                card.Opacity                = 1;
                card.MainImage.Scale        = 1;
                card.MainImage.TranslationY = -150;
                card.MainImage.Opacity      = 1;
            }
        }
 private void _coverFlow_UserInteracted(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args)
 {
     if (args.Status == PanCardView.Enums.UserInteractionStatus.Started)
     {
         FootballMatchesTabPage.DisableSwipe();
     }
     if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended)
     {
         FootballMatchesTabPage.EnableSwipe();
     }
 }
        private void MainCardView_UserInteracted(
            PanCardView.CardsView view,
            PanCardView.EventArgs.UserInteractedEventArgs args)
        {
            var card = MainCardView.CurrentView as PokemonCardView;

            if (args.Status == PanCardView.Enums.UserInteractionStatus.Running)
            {
                var ratioFromCenter = Math.Abs(args.Diff / this.Width);

                animateFirstCard(card, ratioFromCenter);


                var nextCard = MainCardView.CurrentBackViews.First() as PokemonCardView;

                animateSecondCard(nextCard, ratioFromCenter);
            }

            //Reset parameters of the card after swipe so it doens't look stupid
            if (args.Status == PanCardView.Enums.UserInteractionStatus.Ending)
            {
                card.MainImage.FadeTo(1, 250);
                card.MainImage.ScaleTo(1, 250);
                card.MainImage.TranslateTo(this.X, 0, 250);
                card.ScaleTo(1, 50);
            }


            if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended)
            {
                if (MainCardView.CurrentBackViews.Count() == 0)
                {
                    return;
                }
                var prevCard = MainCardView.CurrentBackViews.First() as PokemonCardView;
                prevCard.MainImage.TranslationY = 0;
            }
        }
Exemplo n.º 5
0
        private void MainCardView_UserInteracted(
            PanCardView.CardsView view,
            PanCardView.EventArgs.UserInteractedEventArgs args)
        {
            if (args.Status == PanCardView.Enums.UserInteractionStatus.Running)
            {
                // get the front card
                var card = MainCardView.CurrentView as HeroCard;

                // work out what percent the swipe is at
                var percentFromCenter = Math.Abs(args.Diff / this.Width);

                // adjust scale when panning
                if ((percentFromCenter > 0) && (card.Scale == 1))
                {
                    card.ScaleTo(.95, 50);
                }

                // update elements based on swipe position
                AnimateFrontCardDuringSwipe(card, percentFromCenter);

                // get the next card on the stack, which is the one coming into view
                var nextCard = MainCardView.CurrentBackViews.First() as HeroCard;

                // update elements based on swipe position
                AnimateIncomingCardDuringSwipe(nextCard, percentFromCenter);
            }

            if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended ||
                args.Status == PanCardView.Enums.UserInteractionStatus.Ending)
            {
                // at the end of dragging we need to make sure card is reset
                var card = MainCardView.CurrentView as HeroCard;
                AnimateFrontCardDuringSwipe(card, 0);
                card.ScaleTo(1, 50);
            }
        }
Exemplo n.º 6
0
 private async void CoverFlowView_UserInteractedAsync(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args)
 {
     if (args.Status == PanCardView.Enums.UserInteractionStatus.Started)
     {
         await playNeedleAnimationManager.RunAnimationAsync(Models.ENUM.PlayNeedleRunMode.up);
     }
     else if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended)
     {
         await playNeedleAnimationManager.RunAnimationAsync(Models.ENUM.PlayNeedleRunMode.down);
     }
 }
Exemplo n.º 7
0
        private void MainCardView_UserInteracted(PanCardView.CardsView view,
                                                 PanCardView.EventArgs.UserInteractedEventArgs args)
        {
            var card     = MainCardView.CurrentView as HeroCard;
            var nextCard = MainCardView.CurrentBackViews.FirstOrDefault() as HeroCard;

            var percentFromCenter = Math.Abs(args.Diff / this.Width);

            Debug.WriteLine($"% from C: {card.MainImage.Source.ToString()} {args.Status} {percentFromCenter}");

            if (args.Status == PanCardView.Enums.UserInteractionStatus.Started)
            {
                if (nextCard != null && false)
                {
                    nextCard.Opacity                = 1;
                    nextCard.MainImage.Scale        = 1;
                    nextCard.MainImage.TranslationY = _defaultTranslationY;
                }
            }

            if (args.Status == PanCardView.Enums.UserInteractionStatus.Running)
            {
                // control opacity of currnet card
                var opacity = 1 - (percentFromCenter * 0.8);
                card.Opacity = (opacity > 1) ? 1 : opacity;

                // set scale of image in current card
                card.MainImage.Scale = Math.Max(1 - (percentFromCenter * 1.5), .5);

                // set position of image in current card
                var movementFactor = 150;
                card.MainImage.TranslationY = _defaultTranslationY + (movementFactor * percentFromCenter);

                // set opacity of next card
                nextCard.MainImage.Opacity = 1 - (opacity / 4);
                nextCard.MainImage.Scale   = Math.Min(percentFromCenter * 3, 1);

                // set margin
                var lrMargin = Math.Min(10, 50 * percentFromCenter);

                // add margin
                card.ScaleTo(.9, 50);
            }

            if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended ||
                args.Status == PanCardView.Enums.UserInteractionStatus.Ending)
            {
                card.Opacity                = 1;
                card.MainImage.Opacity      = 1;
                card.MainImage.Scale        = 1;
                card.MainImage.TranslationY = _defaultTranslationY;

                // ensure next card is hidden
                nextCard.MainImage.Opacity      = 0;
                nextCard.MainImage.Scale        = 1;
                nextCard.MainImage.TranslationY = _defaultTranslationY;

                // remove margin
                card.ScaleTo(1, 50);
            }
        }