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?
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.
Sie können ListView
oder ListFragment
verwenden und Elemente mit jedem einzelnen TableRow
innerhalb eines TableLayout
(möglicherweise unter Verwendung von android: stretchColumns="0")
Sie haben TableLayout
pro Zeile, also ist es wahrscheinlich ineffizient, aber es macht das, was Sie versuchen zu tun
Tags und Links android