Hat Android einen Table-ähnlichen Adapter für ListView?

8

Ich verwende eine ListView, um eine Liste von Elementen anzuzeigen. Diese Elemente haben ein Tabellenformat mit Spalten und Zeilen. Gibt es einen tabellenähnlichen Adapter, um sicherzustellen, dass alle Spalten und Zeilen in einer Linie stehen? Ich weiß, das bringt die Komplexität mit sich, wie groß jede Spalte sein sollte, was mit abgeschnittenem Text und anderen Dingen zu tun ist. Ich bin nur neugierig, ob es momentan und Adapter irgendwo für diese Aufgabe versteckt. Oder vielleicht noch eine Kontrolle?

    
Spidy 22.04.2011, 15:39
quelle

4 Antworten

15

Der Sinn der Verwendung von ListView besteht darin, auf größere Datenmengen skalieren zu können, ohne für alle Elemente im Voraus Ansichten erstellen und Layouts erstellen zu müssen. Aus diesem Grund widerspricht Ihre Anfrage grundlegend der Funktionsweise von ListView - ListView weiß einfach nicht, wie alle seine Elemente angeordnet werden, so dass sie nicht automatisch sicherstellen können, dass sie sich auf irgendeine Weise ausrichten.

Sie können sicherstellen, dass sie sich selbst ausrichten, indem Sie das Layout des Artikels entsprechend schreiben. Zum Beispiel, sehr oft in der Benutzeroberfläche haben Sie ein Symbol gefolgt von einer Bezeichnung. Wenn Sie sicherstellen, dass das Symbol eine bestimmte Größe hat, werden alle Listenelemente ausgerichtet. Wenn Sie mit Elementen arbeiten, die dynamischer sind wie Text, können Sie dasselbe tun, indem Sie eine bestimmte Breite für diese Elemente festlegen.

Wenn Sie wirklich möchten, dass die Benutzeroberfläche die Elementgrößen dynamisch berechnet und alle darauf basierenden Zeilen ausrichtet, ist dies das, was TableLayout tut. Es kann dies tun, weil es immer alle Elemente zusammen zum Layout hat. Wenn Sie das Scrollen zulassen möchten, können Sie das in einem ScrollView wie ein anderes vorgeschlagenes Poster einfügen. Seien Sie sich jedoch bewusst, dass dieser Ansatz schnell auseinander fallen wird, wenn Ihre Anzahl an Zeilen signifikant ansteigt.

    
hackbod 22.04.2011, 16:05
quelle
3

Ich konnte TableLayout dazu bringen, sich wie ListView zu verhalten (zumindest visuell). Hier ist meine Antwort.

    
GrAnd 22.04.2011 15:56
quelle
0

Dafür gibt es GridView , aber afaik funktioniert nicht mit Spalten und Reihen. Zum Glück scheinen Sie etwas Komplexität erwartet zu haben:)

    
bigstones 22.04.2011 15:47
quelle
0

Sie können ListView oder ListFragment verwenden und Elemente mit jedem einzelnen TableRow innerhalb eines TableLayout (möglicherweise unter Verwendung von android: stretchColumns="0")

füllen

Sie haben TableLayout pro Zeile, also ist es wahrscheinlich ineffizient, aber es macht das, was Sie versuchen zu tun

    
sherpya 28.04.2014 03:53
quelle

Tags und Links