Détails
Exemple simple de grille Android utilisant RecyclerView avec GridLayoutManager (comme l'ancien GridView)
Je sais que RecyclerView
a remplacé les fonctionnalités des anciennes ListView
et GridView
. Je suis à la recherche d'un exemple très basique qui montre une configuration minimale de grille utilisant RecyclerView
. Je ne cherche pas de longues explications de type tutoriel, juste un exemple minimal. J'imagine que la grille la plus simple qui imite l'ancien GridView serait composée des caractéristiques suivantes :
- plusieurs cellules par ligne
- vue unique dans chaque cellule
- répond aux événements de clics
181
3
Réponse courte
Pour ceux qui sont déjà familiers avec [la configuration d'un
RecyclerView
pour faire une liste][1], la bonne nouvelle est que faire une grille est largement la même chose. Vous utilisez simplement unGridLayoutManager
au lieu d'unLinearLayoutManager
lorsque vous configurez leRecyclerView
.Si vous avez besoin de plus d'aide, consultez l'exemple suivant.
Exemple complet
L'exemple suivant est un exemple minimal qui ressemblera à l'image ci-dessous.
[!Entrez la description de l'image ici][2]][2]
Commencez par une activité vide. Vous allez effectuer les tâches suivantes pour ajouter la grille
RecyclerView
. Tout ce que vous avez à faire est de copier et coller le code dans chaque section. Plus tard, vous pourrez le personnaliser pour l'adapter à vos besoins.Mise à jour des dépendances de Gradle
Assurez-vous que les dépendances suivantes sont dans le fichier
gradle.build
de votre application :Vous pouvez mettre à jour les numéros de version en fonction de la plus récente.
Créer la mise en page de l'activité
Ajoutez le
RecyclerView
à votre layout xml.*Activité principale.xml
Créer la disposition des cellules de la grille
Chaque cellule de notre grille
RecyclerView
n'aura qu'un seulTextView
. Créez un nouveau fichier de ressources de mise en page.*`recyclerview_item.xml'.
Créer l'adaptateur
Le
RecyclerView
a besoin d'un adaptateur pour remplir les vues de chaque cellule avec vos données. Créez un nouveau fichier java.MonRecyclerViewAdapter.java
Notes
GridView
et est un besoin commun. Vous pouvez supprimer ce code si vous n'en avez pas besoin.Initialiser RecyclerView dans l'activité
Ajoutez le code suivant à votre activité principale.
MainActivity.java (en anglais)
Notes
ItemClickListener
que nous avons défini dans notre adaptateur. Cela nous permet de gérer les événements de clic de cellule dansonItemClick
.Terminé
C'est tout. Vous devriez être en mesure d'exécuter votre projet maintenant et obtenir quelque chose de similaire à l'image du haut.
Going on
Coins arrondis
Ajustement automatique des colonnes
Étude complémentaire
[Tutoriel d'exemple Android RecyclerView avec GridView GridLayoutManager] [5]
[Exemple de mise en page de la grille d'un RecyclerView sous Android] [6]
[Apprendre RecyclerView avec un exemple sous Android] [7]
[RecyclerView : Grille avec en-tête] [8]
[GridLayoutManager Android avec RecyclerView dans Material Design] [9].
[Démarrer avec RecyclerView et CardView sur Android] [10].
[1] : https://stackoverflow.com/questions/40584424/simple-android-recyclerview-example [2] : https://i.stack.imgur.com/QLHNc.png [4] : https://developer.android.com/training/material/lists-cards.html [5] : http://www.android-examples.com/android-recyclerview-with-gridview-gridlayoutmanager/ [6] : https://android--code.blogspot.com/2015/12/android-recyclerview-grid-layout-example.html [7] : http://www.theappguruz.com/blog/learn-recyclerview-with-an-example-in-android [8] : http://blog.sqisland.com/2014/12/recyclerview-grid-with-header.html [9] : https://inducesmile.com/android/android-gridlayoutmanager-with-recyclerview-in-material-design/ [10] : https://code.tutsplus.com/tutorials/getting-started-with-recyclerview-and-cardview-on-android--cms-23465
Bien que j'aime et apprécie la réponse de [Suragch'1], je voudrais laisser une note parce que j'ai trouvé que coder le Adapter (
MyRecyclerViewAdapter
) pour définir et exposer la méthode ListeneronItemClick
n'est pas la meilleure façon de le faire, à cause d'une mauvaise utilisation de l'encapsulation de classe. Je suggère donc de laisser l'adaptateur Adapter gérer uniquement les opérations d'écoute (c'est son but !) et de les séparer de l'activité qui utilise l'adaptateur Adapter (MainActivity
). Voici donc comment je définirais la classe de l'adaptateur :MonRecyclerViewAdapter.java.
Veuillez noter que la méthode
onItemClick
est maintenant définie dansMyRecyclerViewAdapter
. C'est l'endroit où vous voulez coder vos tâches pour l'événement/action reçu.Il n'y a qu'un petit changement à faire pour compléter cette transformation : l'Activité n'a plus besoin d'implémenter
MyRecyclerViewAdapter.ItemClickListener
, car maintenant cela est fait complètement par l'Adapteur. Il s'agit donc de la dernière modification :MainActivity.java
Vous devez définir votre gestionnaire de mise en page RecyclerView en mode Gridlayout. Pour ce faire, il suffit de modifier votre code lorsque vous souhaitez définir votre gestionnaire de mise en page RecyclerView :
Note : remplacez le nombre de colonnes que vous souhaitez par ###HELP###.