1

J'ai une mise en page complexe faite d'un ViewPager avec 3 fragments (horizontaux) [PAGE].Comment faire pour Intercepter des événements tactiles dans RecyclerViews imbriqués pour éviter la propagation au parent?

Chaque PAGE est composée de plusieurs (verticales) RecyclerView [CARD].

Chaque CARD, a un RecyclerView (horizontal) avec plusieurs éléments. Mon problème est que, lors du balayage entre les éléments, l'événement tactile est plus souvent propagé au viewPager, ce qui entraîne un changement de page indésirable. Y at-il un moyen de bloquer, en touchant une zone spécifique de l'écran (ie Toute la zone couverte par le RecyclerView le plus interne) la propagation de l'événement tactile, même si aucun élément n'est touché (il y a de l'espace libre articles et y toucher provoquent le changement de page indésirables)

http://i.stack.imgur.com/8vfAI.jpg

ici est mon exemple, lorsque la zone glisser sur Scrollable, je ne veux pas être en mesure de se déplacer vers d'autres pages.

Merci pour l'aide

Example of layout

Répondre

0

Si votre carte a un RecyclerView personnalisé (pour le recycleur horizontal), vous pouvez appeler requestDisallowInterceptTouchEvent() sur les événements tactiles. Cela aurait permis au parent RecyclerView et au ViewPager de ne plus recevoir d'entrées jusqu'à ce que le recycleur horizontal arrête de recevoir des événements tactiles (l'appel se nettoie automatiquement si je me souviens bien).