GridView VS GridLayout dans les applications Android


212

Je dois utiliser une grille pour implémenter le navigateur de photos dans Android. Donc, je voudrais connaître le différence entre GridView et GridLayout .

Pour que je choisisse la bonne.

Actuellement, j'utilise GridView pour afficher les images de manière dynamique.

Réponses:


264

Une GridView est un ViewGroup qui affiche les éléments dans une grille de défilement bidimensionnelle. Les éléments de la grille proviennent du ListAdapter associé à cette vue.

C'est ce que vous souhaitez utiliser (continuez à utiliser). Parce qu'un GridView obtient ses données d'un ListAdapter, les seules données chargées en mémoire seront celles affichées à l'écran. GridViews, tout comme ListViews, réutilise et recycle ses vues pour de meilleures performances.

Alors qu'un GridLayout est une mise en page qui place ses enfants dans une grille rectangulaire.

Il a été introduit dans le niveau 14 de l'API et a été récemment rétroporté dans la bibliothèque de support. Son objectif principal est de résoudre les problèmes d'alignement et de performances dans d'autres mises en page. Consultez ce didacticiel si vous souhaitez en savoir plus sur GridLayout.


15
GridLayout est également un ViewGroup.
Dzmitry Lazerka

22
Je n'ai jamais dit que ce n'était pas le cas. J'insistais simplement sur le fait qu'il s'agit d'une mise en page.
Benito Bertoli

16
@laki serait un scénario si vous voulez charger un tas d'images dans une formation de type Grille. L'utilisation de GridView ne chargerait en mémoire que les vues visibles à l'écran. Alors que si vous utilisez un GridLayout, vous devrez charger toutes les images qui seront affichées à tout moment, provoquant une erreur de mémoire excessive dans la plupart des appareils.
BigBen3216

15
La différence fondamentale semble être que GridView ne peut accepter qu'une largeur de colonne uniforme. La disposition de la grille vous permet d'avoir un contenu s'étendant sur 2 colonnes ou plus. La disposition de la grille vous permet de concevoir des écrans dont le contenu s'étend sur différentes tailles de colonnes
Yasir

58
@laki Scénario 1: Dessinez une calculatrice, GridLayout. Scénario deux: dessinez une galerie, GridView.
Mario Velasco
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.