2 votes

Comment savoir quel indicateur vous êtes sur avec CarouselView dans Xamarin Forms ?

Je suis en train d'utiliser le CarouselView et je parviens à charger des éléments avec succès! Youpi, jusqu'ici tout va bien. Mais maintenant, quand j'arrive au 2ème élément, j'essaie d'exécuter une fonction spécifique qui ne se produira que dans le 2ème index.

Actuellement, je semble avoir compris quand je suis sur la 2ème page bien que le journal enregistre beaucoup de choses, mais lorsque je passe à la 3ème page, ou de retour à la 1ère page, j'ai perdu le compte (de manière programmée) de où je me trouve.

Code derrière :

    async void CarouselView_Scrolled(System.Object sender, Xamarin.Forms.ItemsViewScrolledEventArgs e)
    {
        System.Diagnostics.Debug.WriteLine(e.CenterItemIndex);

        if (e.CenterItemIndex == 1)
        {
            if (Transitioning == false)
            {
                Transitioning = true;
                await ParentView.ColorTo(Color.White, Color.FromHex("#161825"), c =>
                {
                    ParentView.BackgroundColor = c;
                    Transitioning = false;
                }, 500);
            }
        }
        else
        {
            Transitioning = true;
            await ParentView.ColorTo(Color.FromHex("#161825"), Color.White, c => ParentView.BackgroundColor = c, 500);
            Transitioning = false;
        }
    }

Quelle logique dois-je ajouter dans mon frontend pour surveiller avec succès si je suis sur la page 2 ?

1voto

Jason Points 17388

ItemsViewScrolledEventArgs a une propriété CenterItemIndex qui vous indique quel élément est dans la vue centrale

ou vous pouvez utiliser l'événement CurrentItemChanged

0 votes

Ne pas bien se passer lorsque j'essaie de faire mon animation.

0 votes

Pour une raison quelconque, il ne fait pas le ColorTo en douceur. "ParentView" comme vous le voyez dans le code est le x:name de la vue dont je change la couleur

0 votes

Il ne me donne pas seulement un indicateur dans le journal, il le spamme plus de 8 fois. je crois que c'est le problème. j'ai essayé de le résoudre avec un booléen, mais il semble toujours buggy

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X