J'utilise attachToRecyclerView (RecyclerView) et cela fonctionne comme prévu.

Question: à un moment donné, je veux que le même recyclerView défile normalement, comment y parvenir?

Code:

PagerSnapHelper pagerSnapHelper = new PagerSnapHelper();
pagerSnapHelper.attachToRecyclerView(recyclerView);
6
Belzebub 26 juil. 2017 à 10:56

2 réponses

Meilleure réponse

Regarder depuis recyclerview-v7:25.1.0, suffit pour appeler

snapHelper.attachToRecyclerView(null); 

Pour supprimer le SnapHelper

J'ai fait face au même problème. Appel

clearOnScrollListeners();
setOnFlingListener(null);

Sur l'instance RecyclerView a fait l'affaire pour moi. Appeler uniquement setOnFlingListener(null); ne suffisait pas dans mon cas

14
Blackbelt 8 déc. 2017 à 10:58

Si vous ne souhaitez pas conserver la référence de SnapHelper , il existe un autre moyen de contourner le problème selon la documentation officielle que vous pouvez utiliser

recyclerView.setOnFlingListener(null);

À partir de la documentation Android

  • Attache le {@link SnapHelper} au RecyclerView fourni, en appelant
  • {@link RecyclerView # setOnFlingListener (RecyclerView.OnFlingListener)}.
  • Vous pouvez appeler cette méthode avec {@code null} pour la détacher du RecyclerView actuel.

Attention

SnapHelper.attachToRecyclerView () peut lancer une IllegalArgumentException

  • @throws IllegalArgumentException s'il existe déjà un {@link RecyclerView.OnFlingListener}
  • attaché au {@link RecyclerView} fourni.
0
Rahul Khurana 17 mai 2019 à 09:57