ListView oder TableLayout?
Ich bin jetzt echt verwirrt, was zu lernen. Ich bin ein iPhone-app-Entwickler und jetzt lernen Android Entwicklung.
Habe ich gelernt, wie man verwenden Sie eine ListView
eine statische array von strings mit einem Adapter
. Ich bin verwendet, um mithilfe von benutzerdefinierten Zellen von iPhone, vor allem für das zeigen dynamische Inhalte wie Bilder und Texte in TableView
s.
Also, was ist der Weg zu gehen für das für Android? TableLayout
oder ListView
?
InformationsquelleAutor der Frage Akash Malhotra | 2012-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie andere schon gesagt haben in Kommentaren, die Sie brauchen, um klar zu definieren, was Sie tun wollen, bevor eine konkrete Entscheidung über die Art des Layouts zu verwenden. Allerdings kann ich die Verwirrung verstehen, die sich aus versuchen zu entscheiden, über welche Art von layout-Klasse zu verwenden, denn oft gibt es mehrere, zum von zu wählen, um zu erreichen das gleiche Ziel. Zum Beispiel, um einen vertikal scrollbaren Liste von Elementen, die Sie vielleicht auf den ersten wählen Sie einen vertikalen
LinearLayout
was würden Sie dann in eineScrollView
. Aber auf der anderen Seite, zu erreichen ein ähnliches Ergebnis könnte einListView
zusammen mit einem geeignetenAdapter
.Ähnlich, zeigen ein raster von Elementen, können Sie einen vertikalen Bildlauf durchführen, können Sie eine
TableLayout
innerhalb einerScrollView
. Oder, ein ähnliches Ergebnis erreicht werden könnte, die aus der Verwendung einerGridView
wieder durch die Versorgung mit Daten durch eine geeigneteAdapter
.Nun, der erste entscheidende Unterschied ist dieser: - Klassen, wie
LinearLayout
undTableLayout
benötigen Sie zur Versorgung der untergeordneten Elementen entweder in XML-layouts oder alternativ programmgesteuert im code. Klassen wieListView
undGridView
(und einige andere) sind sehr unterschiedlich, weil Sie die Unterklassen vonandroid.widget.AdapterView
. Das Besondere anAdapterView
- Klassen ist, dass einAdapter
wird verwendet zum binden von Daten zu Ihnen. Also, gehen wir zurück zu dem Beispiel für eine vertikale Liste von Elementen, wenn Sie zeigten einer Gruppe von child-Liste Elemente in einemLinearLayout
basierend auf einem array-Daten haben, müssten Sie programmgesteuert erstellen und hinzufügen KindView
s in dieLinearLayout
basierend auf den array-Daten. MitListView
auf der anderen Seite, die einzelnenView
s vertreten, dass die Kind-Elemente geliefert werden, die aus einem geeignetenAdapter
. Also, anstatt Sie programmgesteuert füllen das layout mit allen untergeordneten Elementen (als wäre der Fall mitLinearLayout
oderTableLayout
zum Beispiel), einAdapter
-basiertes layout stattdessen fordert dieAdapter
zu erhalten, das KindView
s, wie und Wann es Sie braucht.Dieser Letzte Punkt ist der nächste wichtige Unterschied, den ich glaube, Sie sollten verstehen, über
Adapter
basierte layouts: Sie sind viel effizienter zu zeigen, große Mengen von Daten in Situationen, in denen der Großteil der Daten wird gescrollt angezeigt. Zum Beispiel, einListView
ist viel effizienter zum anzeigen eine große Liste von items, als wenn Sie einfach aufgefüllt, einLinearLayout
mit allen Sendungen und legte es in einenScrollView
. Der Grund für diese Effizienz ist, dassAdapterView
-basierte layouts in der Regel nicht enthalten alle untergeordnetenView
s alle auf einmal. Stattdessen, wie der Benutzer führt einen Bildlauf durch die Liste, werden die bestehenden untergeordneten Ansichten "recycelt" oder "umgewandelt" durch dieAdapter
zu zeigen, das nächste Kind-Elemente. Um dies zu verdeutlichen ein Beispiel: Sie möchten eine vertikal zu scrollen, die Liste der 100 items. Kann der Bildschirm nur groß genug sein, um display 7 auf einmal, jedoch. Stellen Sie sich vor Sie verwenden eineLinearLayout
innerhalb einerScrollView
zu zeigen, 100 Elemente der Liste. Das bedeutet, dass dieLinearLayout
- container hat 100 KindViews
. Diese Kinder sind immer in der layout-und verarbeitet werden müssen, die das system beim scroll-Ereignisse, auch wenn nur sieben werden können, in Ansicht auf dem Bildschirm gleichzeitig. Dieser nimmt zusätzliche CPU-Zeit, die eine beträchtliche Menge an RAM, und scrollen kann träge werden. Jetzt, mit einemListView
wird das layout wahrscheinlich nur enthalten, nur 7 oder 8 KindView
s. Wie der Benutzer scrollt, diese untergeordnetenView
s sind dynamisch konvertiert oder neu instanziert, indem derAdapter
durch das binden Sie Ihre Daten. Die Nutzer erleben ein schnelleres, flüssigeres scrollen-operation. Vom Standpunkt der Programmierung, es ist in der Regel viel mehr elegant zu binden Listen von Daten über eineAdapter
. Wenn Sie den Umgang mit Dropdown-Listen oder grids vonBitmap
s, die Speicher Einschränkungen einerAndroid
Gerät auch bedeuten, dass die Verwendung einesAdapterView
ist ziemlich wesentlich.Beachten, dass, wenn dies zu beantworten, habe ich die Vermutung, dass Sie versuchen zu zeigen, eine vertikale oder eine tabellarische Liste der Elemente, ist die durchlaufbaren, darunter vielleicht
Bitmap
s, und ich konzentriere mich auf die Art von layout, das Sie verwenden würden, für die Erreichung der layout-und scrollen der Daten. Layout-Klassen, wieLinearLayout
TableLayout
usw. allerdings werden wichtige Klassen, die Sie alle nutzen die Zeit, um einzelne layout-Bausteine für Ihre Anwendungen. Wenn Sie Ihre gesamte Liste ist garantiert fit in den Bildschirm und nicht Scrollbar sein soll, dann ist die zusätzliche Komplexität, die mit einemAdapter
(nicht, dass es ist wirklich kompliziert) kann sinnlos und man könnte dann einfach möchten, verwenden Sie eineTableLayout
oder was auch immer.InformationsquelleAutor der Antwort Trevor
Das Android-Gegenstück zu iOS
UITableView
ist dieListView
Klasse.Es ist sehr mächtig und kann mit Daten gefüllt werden die aus verschiedenen Quellen, je nach Art der Adapter Sie legen Sie es. Möchten Sie vielleicht einen Blick auf diese ListView and ListActivity-tutorial.
InformationsquelleAutor der Antwort keyboardsurfer
1. Wenn Sie möchten
dynamic data
aufCUSTOM VIEW
in eine Liste, dannListView
mitBaseAdapter
oderArrayAdapter
ist der Weg zu gehen.....2.
TableLayout
werden von völlig andere Nutzungmeistens verwende ich es für die Darstellung von Daten, die erforderlich sind, um angezeigt werden, die in Stapel-Formular..(dh eine über der anderen....)Finden Sie diese links unten für schnelles Verständnis und Umsetzung:
http://www.ezzylearning.com/tutorial.aspx?tid=1763429
http://www.vogella.com/articles/AndroidListView/article.html
InformationsquelleAutor der Antwort Kumar Vivek Mitra