Détecter de défilement fin à Réagir Natif ScrollView, composant logiciel enfichable à la page
Réagir Natif Le ScrollView a une prop pagingEnabled . Cependant, il suppose que la largeur de chaque page (ou composant enfant) dans la ScrollView est égale à la largeur de la ScrollView.
Comment pouvons-nous réparer ce pour qu'il fonctionne correctement pour les pages qui sont plus petits que la ScrollView?
Est-il possible de détecter lorsque l'utilisateur cesse de défiler? Ensuite, nous peut facilement écrire notre propre code afin de se caler sur la page de droite.
Edit: Il existe d'autres moyens pour réparer cela en utilisant des accessoires qui ne sont disponibles que sur iOS, donc c'est surtout un problème sur Android.
Vous devez vous connecter pour publier un commentaire.
Il existe deux sortes d'accessoires que vous pouvez définir pour Réagir Natif Le ScrollView qui prend un callback à notifier que le défilement est terminé. (Ils sont maintenant à la fois documenté.)
onScrollEndDrag fonction
Appelée dès que l'utilisateur lâche la ScrollView (lève le doigt de l'écran).
d'échantillon de Travail: https://rnplay.org/apps/Ufv6Cg(plus disponible)onMomentumScrollEnd fonction
Appelée lorsque la ScrollView cesse de glissement (il ne sera normalement continuer à le faire glisser un peu après que l'utilisateur a levé le doigt de l'écran).
d'échantillon de Travail: https://rnplay.org/apps/BPgG_g(plus disponible)Remarque: je ne pouvais pas trouver les méthodes décrites dans la documentation de l'API pour toute Réagir composant Natif, mais ils fonctionnent comme illustré dans les exemples. Je l'ai vu utilisé ici dans réagir-native-snap-carrousel.
onScrollBeginDrag
est un autre qui déclenche au début d'un glissement github.com/facebook/react-native/blob/...onMomentumScrollEnd
est maintenant documenté; j'ai ouvert PRs de documentonScrollEndDrag
etonScrollBeginDrag
github.com/facebook/react-native/pull/17368 et github.com/facebook/react-native-website/pull/99.