Aller au contenu

Quelle est la différence une ListView et LinearLayout+ScrollView


Recommended Posts

Posté(e)

[HS] J'ai hésité à mettre "Quelle est la différence entre un pigeon ?" Mais j'aurais plus eu le droit de reprocher les sujets pas explicites[/HS]

Sinon, je me suis posé la question suivante car j'ai l'impression que le résultat est le même :

Quelle est la différence une ListView et LinearLayout inclu dans un ScrollView ?

Posté(e)

reflechi un minimum. ... les listes ont des adapter et des set de fonctions pour te faciliter la vie.

le linearlayout il va avoir du mal a te coder le onItemClick.

--

Posté depuis BBFoC HTC Magic/sapphire

Posté(e)

Donc dans le cas où je veux faire du listing sans réaction je fais un LinearLayout+ScrollView ?

Et dans le cas où je veux faire du listing "clickable" je fais un listView ?

Posté(e)

La différence réside aussi dans la rapidité ...

Encore une fois (je me répète), si tu code bien une ListView (je songe à faire un bon gros post là dessus) il y a un mecanisme de réutilisation qui s'applique. En clair avec une ListView tu as des beau scrolls bien "smooth" (encore une fois si tu code bien) alors qu'avec une ScrollView tu perd tout c'est mécanisme tout simplement parce le contenu d'une ScrollViw n'est pas censé être "répétitif".

Posté(e)
ok! Je m'en vais remplacer mon Linear+Scroll :D

Merci :D

De rien :) Ça fait tellement plaisir de donner les bonnes pratiques et que les gens les suivent (c'est pas toujours le cas à cause de la flemme générale des gens :(). J'vais me proclamer "French Android advocate" lol.

  • 2 months later...
Posté(e)
La différence réside aussi dans la rapidité ...

Encore une fois (je me répète), si tu code bien une ListView (je songe à faire un bon gros post là dessus) il y a un mecanisme de réutilisation qui s'applique. En clair avec une ListView tu as des beau scrolls bien "smooth" (encore une fois si tu code bien) alors qu'avec une ScrollView tu perd tout c'est mécanisme tout simplement parce le contenu d'une ScrollViw n'est pas censé être "répétitif".

perso je début et un tuto sur les listview serait appréciable :-) avec si possible des checkbox mais la j'abuse je pense :-)

Posté(e)

il m'a semblé lire quelque part que la ListView autorisait seulement 1 fils par ligne... dans ce cas exit la ligne avec une ImageView, un TextView et un EditTextView...

Me trompes-je ?

Posté(e)

Tu te trompes-te...

Ton adapter renvoie une View via getView() pour chaque "ligne" de la ListView, et rien n'empêche cette View d'être un ViewGroup basé sur un layout complexe.

Posté(e)
Tu te trompes-te...

Ton adapter renvoie une View via getView() pour chaque "ligne" de la ListView, et rien n'empêche cette View d'être un ViewGroup basé sur un layout complexe.

euh ... help, j'ai rien compris ... :-(

Posté(e) (modifié)

Par contre, la recyclabilité de chaque ligne fait que l'association d'un champ cliquable/éditable au modèle peut parfois amener des surprises...

@zehunter: version simple

La ListView est un objet purement graphique qui affiche des composants les uns en dessous des autres et les fait défiler.

La constitution du détail du composant qui représente la ligne est déléguée à un objet de type ListAdapter. Pour obtenir ce composant, la ListView fait appel à ListAdapter.getView(position) qui lui renvoie le composant.

Ce composant doit être au minimum du type View. Mais ce type View est très générique, et cela ne veut pas dire qu'on est limité à un composant avec un unique champ texte ou une unique image. Les layouts comme les LinearLayout sont des objets qui héritent de ViewGroup qui lui-même hérite de View. Donc en fait, getView() peut très bien renvoyer un layout dans lequel il aura ajouté autant d'objets graphiques qu'il le souhaite.

Modifié par Nivek
Posté(e) (modifié)

Si vous avez un peu de temps et que l'anglais ne vous rebute pas, cette excellente présentation de Romain Guy présente la "bonne" façon de faire une ListView.

Modifié par Nivek
Posté(e)
Par contre, la recyclabilité de chaque ligne fait que l'association d'un champ cliquable/éditable au modèle peut parfois amener des surprises...

@zehunter: version simple

La ListView est un objet purement graphique qui affiche des composants les uns en dessous des autres et les fait défiler.

La constitution du détail du composant qui représente la ligne est déléguée à un objet de type ListAdapter. Pour obtenir ce composant, la ListView fait appel à ListAdapter.getView(position) qui lui renvoie le composant.

Ce composant doit être au minimum du type View. Mais ce type View est très générique, et cela ne veut pas dire qu'on est limité à un composant avec un unique champ texte ou une unique image. Les layouts comme les LinearLayout sont des objets qui héritent de ViewGroup qui lui-même hérite de View. Donc en fait, getView() peut très bien renvoyer un layout dans lequel il aura ajouté autant d'objets graphiques qu'il le souhaite.

bon je me gratte encore un peu la tete, mais c'est plus clair :-)

je dois avoué je début en dev android, et mes connaissances en java date du siècle dernier ... :)

Posté(e)
Si vous avez un peu de temps et que l'anglais ne vous rebute pas, cette excellente présentation de Romain Guy présente la "bonne" façon de faire une ListView.

trés interessant mais trop long :-( en plus Romain Guy est francais non? :)

Posté(e)

Pour les ListView, les 20 premières minutes suffisent.

Oui, Romain Guy est français, du coup son anglais est plutôt compréhensible ! :D

Posté(e)
Pour les ListView, les 20 premières minutes suffisent.

Oui, Romain Guy est français, du coup son anglais est plutôt compréhensible ! :D

j'ai tenu que 5 min :-(

et il a pas fait la meme presentation en french le petit? :-)

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...