web-dev-qa-db-fra.com

Comment remplacer complètement listView / GridView par RecyclerView?

J'ai remarqué que la nouvelle classe RecyclerView, même si elle rend les choses un peu plus propres, manque de nombreuses fonctionnalités que je connais:

  1. diviseurs, mais cela peut être résolu en regardant ce post ou celui-ci
  2. "footerDividersEnabled"
  3. "headerDividersEnabled"
  4. "listSelector", mais peut-être devrais-je simplement le définir par vue?
  5. "fastScrollEnabled"
  6. "smoothScrollbar"
  7. "textFilterEnabled"
  8. J'ai également essayé de savoir s'il existe une nouvelle façon d'utiliser la nouvelle classe avec le filtrage (comme cela est fait avec ListView en implémentant Filterable). Je ne pouvais pas savoir s'il y avait une telle chose
  9. "tools: listitem", pour afficher les éléments sur le concepteur d'interface utilisateur.

C'est ce que j'utilise, mais il y en a peut-être d'autres qui m'ont manqué.

Existe-t-il un didacticiel ou des directives sur la façon de remplacer chacune de ces choses?

38
android developer

ok, je pense avoir trouvé des solutions à ce que j'ai écrit:

  1. séparateurs - les liens que j'ai donnés peuvent probablement aider ( ici , ici et ici ).
  2. "footerDividersEnabled" - probablement comme # 1, mais même si vous ne l'avez pas, vous pouvez toujours ajouter un séparateur à la disposition du pied de page.
  3. "headerDividersEnabled" - identique à # 2.
  4. "listSelector" - devrait être fait pour les vues d'élément.
  5. "fastScrollEnabled" - aucune solution n'est disponible pour cela, à l'exception de cette bibliothèque que j'ai trouvée, qui était une réponse pour mon message ici .
  6. "smoothScrollbar" - devrait être une demande de fonctionnalité pour # 5. Je pense que c'est déjà bien, mais je ne suis pas sûr.
  7. "textFilterEnabled" - malheureusement, vous devez le gérer vous-même. créez un pool de threads de taille 1, ou gérez votre propre thread (ou utilisez AsyncTask, si le travail est relativement court), et laissez-le filtrer pour vous.
  8. Filtrable - identique à # 7
  9. "tools: listitem" - non disponible, mais je pense que vous pouvez étendre à partir de RecyclerView et l'ajouter. Vous devrez cependant mettre un peu de travail, car RecyclerView ne sait pas comment disposer les vues.
9
android developer

Pas de tutoriels à ma connaissance, mais les sources de ListView sont publiques! Il n'y a pas de meilleure façon d'apprendre que cela ... Par exemple: j'ai récemment implémenté le filtrage comme ListView et il fonctionne comme un charme. De plus, si vous le faites bien, vous n'avez qu'à le faire une seule fois et pouvez le réappliquer partout!

0
Takhion

Je vous recommande d'aller voir certaines des bibliothèques pour le RecyclerView. Vous pouvez trouver de nombreuses bibliothèques sur https://Android-arsenal.com/ .

Vous pouvez également implémenter vos propres fonctionnalités dans RecyclerView et l'adaptateur pour RecyclerView. Étendez simplement le RecyclerView et construisez sur cette base.

Je vous recommande de lire le code source de RecyclerView sur https://Android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/recyclerview/src/Android/support/ v7/widget/RecyclerView.Java .

0
nourikhalass