Comment construire une Horizontale ListView avec RecyclerView?
J'ai besoin de mettre en œuvre une horizontale listview dans mon application Android. J'ai fait un peu de recherche et suis tombé sur Comment puis-je faire une horizontale ListView dans Android? et Horizontal ListView dans Android? cependant, ces questions ont été posées avant Recyclerview a été libéré. Est-il une meilleure façon de mettre en œuvre avec Recyclerview?
- Il suffit d'utiliser un
LinearLayoutManager
à l'orientation définie àHORIZONTAL
. - j'ai essayé, il ne se rendre à l'horizontale, mais il semble que des changements même les enfants de l'adaptateur de ligne horizontale trop. j'ai un RelativeLayout. je ne suis pas sûr de savoir comment résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Oui.
Lorsque vous utilisez un
RecyclerView
, vous devez spécifier unLayoutManager
qui est responsable pour la pose de chaque élément dans la vue. LeLinearLayoutManager
vous permet de spécifier une orientation, tout comme un normalLinearLayout
serait.Pour créer une liste horizontale avec
RecyclerView
, vous pourriez faire quelque chose comme ceci:RelativeLayout
n'a pas de concept horizontal vs vertical, de sorte que je ne comprends pas vraiment la question.setReverseLayout()
.app:layoutManager="android.support.v7.widget.LinearLayoutManager"
ne fonctionnera pas pour version version. J'ai été confronté à ce problème de Libération de construire.Exemple complet
La seule vraie différence entre une verticale
RecyclerView
et l'horizontale est la façon dont vous avez configuré leLinearLayoutManager
. Voici l'extrait de code. L'exemple complet est ci-dessous.Ce fuller exemple est modélisé d'après mon verticale
RecyclerView
réponse.Mise à jour de Gradle dépendances
Assurez-vous que les dépendances suivantes sont à votre application
gradle.build
fichier:Vous pouvez mettre à jour les numéros de version pour tout ce qui est le plus courant.
Créer de l'activité mise en page
Ajouter le
RecyclerView
à votre mise en page xml.activity_main.xml
Créer un élément de mise en page
Chaque élément dans notre
RecyclerView
va avoir une seule couleurView
sur uneTextView
. Créer une nouvelle mise en page du fichier de ressources.recyclerview_item.xml
Créer la carte
La
RecyclerView
besoin d'un adaptateur pour remplir les vues de chaque ligne (article horizontal) avec vos données. Créer un nouveau fichier java.MyRecyclerViewAdapter.java
Notes
ListViews
et est un besoin commun. Vous pouvez supprimer ce code si vous n'en avez pas besoin.Initialiser RecyclerView de l'Activité
Ajoutez le code suivant à votre activité principale.
MainActivity.java
Notes
ItemClickListener
que nous avons défini dans notre carte. Cela nous permet de manipuler élément, cliquez sur événements dansonItemClick
.Fini
Que c'est. Vous devriez être en mesure d'exécuter votre projet et obtenir quelque chose de similaire à l'image ci-dessus.
Notes
Si vous souhaitez utiliser un
RecyclerView
avec leGridLayoutManager
, c'est le moyen d'atteindre la barre de défilement horizontale.Essayer de construire une horizontale ListView est prendre trop de temps. J'ai résolu de deux manières.
1.By à l'aide d'un ViewPager dont la carte s'étend de PagerAdapter.
2.By à l'aide de RecyclerView comme ci-dessus. Besoin d'appliquer LayoutManager comme dans le code suivant:
Si vous souhaitez utiliser l'Horizontale Recycleur Vue d'agir comme un ViewPager alors c'est maintenant possible avec l'aide de
LinearSnapHelper
qui est ajoutée à l'Appui de version de Bibliothèque 24.2.0.Tout d'abord Ajouter les RecyclerView à votre Activité/Fragment
Dans mon cas, j'ai utilisé un
CardView
à l'intérieur de laRecyclerView
blog_row.xml
Dans votre Activité/Fragment
Dernière Étape consiste à fixer l'adaptateur à RecyclerView
Avec la sortie de RecyclerView bibliothèque, maintenant vous pouvez aligner une liste de lier des images avec du texte facilement. Vous pouvez utiliser LinearLayoutManager pour spécifier la direction dans laquelle vous souhaitez orienter votre liste, soit à la verticale ou à l'horizontale, comme illustré ci-dessous.
Vous pouvez téléchargement complet d'un travail de démonstration de ce post
Il y a un RecyclerView sous-classe nommée HorizontalGridView vous pouvez l'utiliser pour avoir le sens horizontal.
VerticalGridView pour la direction verticale
Essayez ceci:
seulement dans le cas où vous avez un recycleur de vue avec quelques fragments sur elle.