Comment faire RecyclerView de défilement en douceur?

C'est plus une question générique, mais après beaucoup de recherche et d'essai, je ne suis pas en mesure de comprendre pourquoi c'est si difficile à atteindre. Cette est le plus proche de la réponse que je peux trouver, mais toujours incapable de mettre en œuvre.

Pour être précis, je suis en utilisant RecyclerView avec GridLayoutManager. Tout ce que je veux est la présentation de la grille de défilement en douceur (comme par défaut gallary app) ,rien de fantaisie, mais le défaut de mise en œuvre de la grille de mise en page du gestionnaire de parchemins de la vue dans un "saccadé" manière. J'ai essayé de mettre en œuvre la méthode du lien ci-dessus, mais sans succès.

J'ai aussi essayé de mettre en œuvre LinearSmoothScroller mais je ne suis pas sûr de la façon de mettre en œuvre computeScrollVectorForPosition méthode. Google documents sur computeScrollVectorForPosition a littéralement 0 mots.

J'ai trouvé ce 3 partie tutoriel, mais c'était de très peu d'aide. Donc, tout ce que je veux poser est: peut-il y avoir une sorte de modèle de code qui nous pouvons mettre en œuvre dans LinearSmoothScroller ou par extension de l'RecyclerView.SmoothScroller et de parvenir à défilement lisse ? Même si le code dépend du nombre d'éléments par ligne dans gridlayout, il y a une méthode pour le faire facilement. Suis-je manqué quelque chose ?

"Suis-je manqué quelque chose ?" -- peut-être que vous devez déterminer pourquoi votre code existant est "saccadé", en utilisant des outils comme Traceview, StrictMode, et ainsi de suite.
Donc vous voulez dire par défaut de mise en œuvre de GridLayoutManager défiler le contrôle gridview en douceur ? Je suis désolé si j'ai l'air noob, je suis tout à fait nouvelle pour Android Programmation.
"Donc vous voulez dire par défaut de mise en œuvre de GridLayoutManager défiler le contrôle gridview en douceur ?" -- oui, au moins pour ma définition de "douceur". La source typique de "saccadé" défilement dans Android est l'application qui prennent trop de temps sur le thread principal de l'application mise à jour de l'INTERFACE utilisateur. Dans le cas de RecyclerView, ce serait prendre trop de temps dans onBindViewHolder() ou éventuellement dans onCreateViewHolder(). Ceux chaque besoin de retourner dans le sous-ordre de la milliseconde fois, ce qui signifie que vous ne peut pas faire d'I/O disque ou réseau I/O en eux.
Merci pour votre réponse, je pense que j'ai trouvé le problème. Je suis à l'aide de holder.photo.setImageBitmap(BitmapFactory.decodeFile(itemList.get(position).getAbsolutePath())); sur onBindViewHolder() et le fichier d'image est d'environ 100 ko chacune une dizaine d'images dans la liste. Je vais essayer de faire une meilleure mise en œuvre.

OriginalL'auteur rockfight | 2015-07-06