1

Dans mon application Xamarin.Forms pour Windows Phone 8.1, nous avons un certain nombre de pages que l'utilisateur peut glisser entre CarouselPage. Une de ces pages contient un ListView qui remplit l'écran et lorsque cette page est sélectionnée, l'utilisateur ne peut plus glisser; l'action est interprétée par la vue liste comme un tap dans l'une de ses cellules. Que puis-je faire pour que les balayages horizontaux changent toujours la page dans le carrousel? Je veux toujours des balayages verticaux pour faire défiler la liste.Comment laisser l'utilisateur glisser une CarouselPage lorsqu'elle contient un ListView?

+0

Avez-vous essayé d'utiliser CarouselView au lieu de CarouselPage? La page CarouselPage sera bientôt obsolète – BraveHeart

+0

Vous n'avez pas besoin de taps sur 'ListView'? Vérifiez la propriété 'InputTransparent' à ce sujet –

+0

@BraveHeart il ne semble pas que CarouselView soit disponible dans la version stable de Xamarin Forms pour le moment. Savez-vous quand il sera disponible? – Simon

Répondre

0

Ceci ne peut pas être réalisé directement dans le projet Xamarin Forms car quand il y a une vue de liste disponible, tous les taps, gestes, etc. seront gérés par la liste elle-même. Seuls les gestes qui ne sont pas gérés par la mise en page/le contrôle les plus élevés seront transmis aux contrôles/dispositions situés en dessous. Donc, dans votre cas, la listview gère tous les gestes et rien n'est transmis à la page de votre carrousel.

Le seul problème que je peux imaginer est la définition de la propriété InputTransparent de la liste comme true. Dans ce cas, aucun geste ne sera traité par la liste et tout sera transmis à la page du carrousel. Mais puisque vous devez avoir l'élément sélectionné et ouvrir la page de détail de la vue de liste, ce que vous pouvez faire est d'avoir un bouton dans le modèle d'élément listview et de gérer le clic du bouton. Étant donné que le bouton est un contrôle distinct et que la liste est en surbrillance, le paramètre InputTransparent n'affecte pas la liaison d'événement/commande de clic de bouton.

EDIT: Selon l'expérience de l'OP, il est capable d'accéder à l'élément sélectionné et à toutes les autres fonctions de listview même après avoir défini InputTransparent.

+1

J'ai défini 'InputTransparent' et ListView fonctionne toujours comme je l'espère, même sans définir de boutons pour son contenu. Je peux toujours le faire défiler et appuyer sur les éléments, mais je peux aussi balayer pour changer le carrousel. Merci! – Simon

+0

Vous voulez dire que vous obtenez l'élément sélectionné par listview, même après avoir réglé InputTransparent? –

+1

Ouais - Je peux toujours faire défiler la liste et sélectionner des éléments. – Simon