web-dev-qa-db-fra.com

Différence entre ScrollView et ListView

Quelqu'un peut-il expliquer la différence entre la vue de défilement et la vue de liste? Quand utiliser lequel? Et lequel est le plus efficace?

39
Farooq Arshed

ScrollView est utilisé pour mettre des vues ou des dispositions enfants différentes ou identiques et le tout peut être défilé.

ListView est utilisé pour mettre la même vue enfant ou mise en page que plusieurs éléments. Tous ces éléments peuvent également défiler.

Simplement ScrollView est destiné à une collecte à la fois homogène et hétérogène. ListView est uniquement destiné à une collection homogène.

27
Yugandhar Babu

Ils sont complètement différents.

Un ScrollView est un simple conteneur de défilement que vous pouvez utiliser pour faire défiler tout ce que vous y mettez, qui peut être une liste d'éléments ou non.

http://developer.Android.com/reference/Android/widget/ScrollView.html

Un ListView est très spécifiquement conçu pour contenir des listes, où les éléments se ressemblent généralement (ou au moins suivent un modèle, par exemple les en-têtes de section). ListView est également conçu pour se connecter à une source de données quelconque, SQLite, tableau, fournisseur de contenu, etc. ListView peut évoluer pour gérer un nombre énorme d'éléments de liste.

http://developer.Android.com/resources/tutorials/views/hello-listview.html

Si vous avez des données que vous devez afficher dans une liste, utilisez un ListView. Si vous avez juste besoin de faire défiler le contenu, alors un ScrollView est probablement suffisant.

26
Ollie C

ListView: -

Dans ListView Vous pouvez facilement gérer la disposition des éléments en XML que vous souhaitez afficher dans la liste.

Vous devez indiquer à l'adaptateur le nombre d'éléments que vous souhaitez dans votre liste d'affichage.

Vous pouvez concevoir des vues à la fois homogènes et hétérogènes en fonction de vos besoins en surchargeant la méthode getItemViewType () de l'adaptateur.

Dans ListView, les éléments de la liste sont créés en fonction de la taille de l'écran. c.-à-d. combien d'éléments peuvent apparaître à l'écran sont créés des vues supplémentaires (éléments) sont créées lorsque la liste défile au moment de l'exécution. Les vues qui sont affichées une fois sont mises en cache lorsqu'elles sortent de l'écran et lorsque la liste revient à l'état précédent, les mêmes vues sont affichées, mais cette fois, la vue n'est pas créée mais plutôt extraite du cache.

ScrollView: -

Le concept de cache n'est pas applicable avec ScrollView.

Toutes les vues sont créées en même temps lorsqu'elles apparaissent à l'écran et ne sont pas mises en cache lorsqu'elles sortent de l'écran pendant le défilement. Ils sont présents dans la mémoire (principale), ce qui peut entraîner une fuite de mémoire car le nombre d'objets créés n'est pas détruit par le garbage collector car ils sont référencés jusqu'à ce que vous soyez sur la même page.

Bien que vous puissiez créer des vues à la fois homogènes et hétérogènes. S'il y a plus d'éléments à afficher dans votre liste, il serait fastidieux de gérer la mise en page, que vous conceviez en XML ou créiez dynamiquement en utilisant Java code.

Il est préférable d'utiliser scrollview si vous avez une seule page qui ne contient pas de liste d'éléments, par exemple le formulaire d'inscription, le formulaire de réservation mais cette vue est plus grande que la taille de l'écran, puis mettez ScrollView comme vue parent, gardez également à l'esprit que ScrollView ne peut en avoir qu'une seule disposition/vue directe de l'enfant.

3
Vikash Kumar Tiwari

ScrollView place simplement son contenu dans un conteneur déroulant, vous ne pouvez modifier son contenu qu'en y ajoutant des vues.

ListView est une classe qui utilise un adaptateur qui gère la création des vues pour vos objets de données, il vous suffit de modifier les données et les modifications de mise en page sont effectuées automatiquement par l'adaptateur.

ScrollView doit être utilisé lorsque vous avez un écran (ex: un formulaire avec plusieurs champs) qui ne tient pas dans un seul écran sur de petits appareils, car une telle scrollview offre à l'utilisateur la possibilité de faire défiler vers le bas.

ListView doit être utilisé lors de la représentation d'ensembles de données.

Vous pouvez en lire plus sur http://developer.Android.com/guide/index.html

2
dzsonni

Puisqu'une image vaut mille mots, voici de parfaits exemples de la vie réelle:

Listview est comme l'application Kijiji

Scrollview est comme l'application EBay

Voir également une vue de défilement comme un panneau d'affichage ou un mur, où vous pouvez y mettre des tas de choses différentes.

Et une vue de liste ressemble plus à une page de résultats: les résultats sont tous de même nature, ils s'intègrent donc parfaitement dans une vue de liste. Comme une liste de contacts : ils partagent tous la même structure; numéro de téléphone, adresse, etc.

0
Patrick

Un ListView est soutenu par un adaptateur, qui contient un DataSource. Cela vous permet d'afficher facilement les données en lignes.

Un ScrollView vous permet de mettre du contenu à l'intérieur, et si le contenu dépasse la taille du ScrollView, il permettra à l'utilisateur de faire défiler.

Ils ont tous deux leur utilité, mais cela dépend de ce que vous essayez de faire.

0
Mimminito