Jorodan Posted November 10, 2009 Share Posted November 10, 2009 [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 ? Quote Link to comment Share on other sites More sharing options...
popolbx Posted November 10, 2009 Share Posted November 10, 2009 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 Quote Link to comment Share on other sites More sharing options...
Jorodan Posted November 11, 2009 Author Share Posted November 11, 2009 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 ? Quote Link to comment Share on other sites More sharing options...
popolbx Posted November 11, 2009 Share Posted November 11, 2009 vas y réinvente la roue si tu as du temps a perdre. quand tu veux faire une liste, tu prends une liste. -- Posté depuis BBFoC HTC Magic/sapphire Quote Link to comment Share on other sites More sharing options...
Cyril Mottier Posted November 11, 2009 Share Posted November 11, 2009 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". Quote Link to comment Share on other sites More sharing options...
Jorodan Posted November 11, 2009 Author Share Posted November 11, 2009 ok! Je m'en vais remplacer mon Linear+Scroll :D Merci :D Quote Link to comment Share on other sites More sharing options...
Cyril Mottier Posted November 13, 2009 Share Posted November 13, 2009 ok! Je m'en vais remplacer mon Linear+Scroll :DMerci :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. Quote Link to comment Share on other sites More sharing options...
zehunter Posted January 26, 2010 Share Posted January 26, 2010 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 :-) Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 26, 2010 Share Posted January 26, 2010 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 ? Quote Link to comment Share on other sites More sharing options...
Nivek Posted January 26, 2010 Share Posted January 26, 2010 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. Quote Link to comment Share on other sites More sharing options...
cefabien Posted January 26, 2010 Share Posted January 26, 2010 oki oki, alors ça m'ouvre la voie pour mon appli :p Merci :) Quote Link to comment Share on other sites More sharing options...
zehunter Posted January 26, 2010 Share Posted January 26, 2010 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 ... :-( Quote Link to comment Share on other sites More sharing options...
Nivek Posted January 26, 2010 Share Posted January 26, 2010 (edited) 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. Edited January 26, 2010 by Nivek Quote Link to comment Share on other sites More sharing options...
Nivek Posted January 26, 2010 Share Posted January 26, 2010 (edited) 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. Edited January 26, 2010 by Nivek Quote Link to comment Share on other sites More sharing options...
zehunter Posted January 26, 2010 Share Posted January 26, 2010 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 ... :) Quote Link to comment Share on other sites More sharing options...
zehunter Posted January 26, 2010 Share Posted January 26, 2010 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? :) Quote Link to comment Share on other sites More sharing options...
Nivek Posted January 27, 2010 Share Posted January 27, 2010 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 Quote Link to comment Share on other sites More sharing options...
zehunter Posted January 27, 2010 Share Posted January 27, 2010 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? :-) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.