Ich möchte eine ListView
generieren, die einige Teiler zwischen einigen der Einträge hat, wie es in einigen der Eigenschaftenabschnitte zu sehen ist. Siehe das Beispiel unten. Ich versuche, eine List
zu generieren, die aus einigen Textansichten gefolgt von einem der ausgefallenen Teiler besteht, die den nächsten Teil der Liste und dann wieder einige Textansichten erklären. Wie kann das gemacht werden? Ich habe überlegt, verschiedene Ansichten zu erstellen, um sie der Liste hinzuzufügen. Ist das der Weg zu gehen?Wie generiert man eine ListView mit Kopfzeilen über einigen Abschnitten?
Antwort
für android.widget.ExpandableListView suchen ich eine Lösung. Ich weiß nicht, ob es das Beste ist.
Ich verwende einen benutzerdefinierten Adapter abgeleitet von ArrayAdapter für die Liste wie in diesem tutorial beschrieben. In der Adapterklasse überprüfe ich, ob die Position in der getView-Methode eine normale Zeile ist, dann blende ich das Zeilenlayout auf. Wenn es sich um die erste Zeile einer neuen Gruppe handelt, blähe ich ein Überschriften-Layout auf, das eine normale Zeile plus die Gruppenüberschrift darüber ist.
Wenn Sie die Kopfzeile nicht in eine Ihrer Zeilen mischen möchten. Berücksichtigen Sie die folgende Lösung:
Sie können die beiden Methoden getItemViewType und getViewTypeCount überschreiben. Sie haben jetzt eine Liste, die verschiedene Zeilen anzeigen kann. Sie müssen den erwarteten Ansichtstyp für das Element in der getView-Methode überprüfen und abhängig davon unterschiedliche Layouts aufblasen.
Die Liste wird das Recycling für Sie so behandeln, dass es nur korrekte Recycle-Ansichten an Ihre getView-Methode zurückgibt, dh wenn recycleView nicht null ist, kann es zur Anzeige Ihrer aktuellen Zelle verwendet werden.
Ich glaube, Sie könnten
http://developer.android.com/reference/android/widget/ExpandableListView.html
Ich denke, die erweiterbare Liste ist eher wie eine Baumansicht. Wie hier zu sehen: http: //mylifewithandroid.blogspot.com/2008/05/expandable-lists.html – Janusz
Es ist eine zweistufige Liste. Ich denke, es könnte dazu verleitet werden, wie Ihr Beispiel auszusehen, indem Sie die Einträge der obersten Ebene als die großen orangefarbenen Einträge in Ihrem Beispiel verwenden. Jetzt, da ich mir mehr Gedanken gemacht habe, denke ich, dass das eine hässliche Lösung sein könnte. –
Sie können meine SectionedAdapter
verwenden, wenn GPLv3 akzeptabel ist (auf diese Weise lizenziert aufgrund einiger Upstream-Code). Sie können meine MergeAdapter
verwenden, wenn Sie etwas flexibler und mit einer weniger einschränkenden Lizenz (Apache 2) benötigen.
Ich habe einfach alles, was ich brauchte, mit MergeAdapter implementiert. Es ist genau das, wonach ich gesucht habe! Danke, Mark (hilfreich wie immer). –
Ich bin auch an einer Antwort darauf interessiert. Es muss einen einfacheren Weg geben, dies zu tun.
Beim Betrachten des Adapters gibt es eine Methode, Adapter.getItemViewType (int position).
ListView definiert einen Rückgabewert, ITEM_VIEW_TYPE_HEADER_OR_FOOTER, der angibt, ob das zurückgegebene Element eine Kopf- oder Fußzeile ist.
Ich habe es nicht versucht, aber ich nehme an, wenn Sie Ihren eigenen Adapter erstellen und ein Element mit dem Typ zurückgeben, der angibt, dass es eine Kopf- oder Fußzeile ist, wird das ListView es entsprechend anzeigen.
Ich denke, dass Kopf- und Fußzeile nur für Kopf- und Fußzeilenansichten verwendet werden. Diese Ansichten befinden sich oberhalb und unterhalb der Liste. – Janusz
- 1. Android Listview mit Abschnitten
- 2. Android ListView schneller Bildlauf mit Abschnitten: Abschnitt Text zu lang
- 3. Wie erstellt man Abschnitte mit Kopfzeilen links von Zellen mit UICollectionView?
- 4. Schwarze Linie unter einigen ListView-Elementen
- 5. Wie man clang nach GCC-Kopfzeilen suchen?
- 6. Wie generiert man eine WAR mit dem Quellcode in Maven?
- 7. Wie generiert man eine verschachtelte PUT-Anfrage mit Ember Data
- 8. Wie generiert man eine zufällige URL sichere Zeichenfolge mit Elixir
- 9. So erstellen Sie eine erweiterbare ListView mit Abschnitt Kopfzeilen in Android
- 10. Spark: Wie speichert man einen Datenrahmen mit Kopfzeilen?
- 11. Hibernet - Wie eine Auswahl mit einigen Filtern
- 12. Wie man eine Listview in Qt
- 13. Wie generiert man Barcodes mit Java
- 14. Wie generiert man Inhaltsverzeichnis mit dompdf?
- 15. Wie generiert man .msi Installer mit cmake?
- 16. Wie generiert man Zufallszahlen parallel?
- 17. hinzufügen läuft Kopfzeilen ab
- 18. Wie generiert man eine kryptografisch sichere Pseudozufallszahl in C?
- 19. window.open mit Kopfzeilen
- 20. Get ListCell über ListView
- 21. Exportieren von CSV über Python mit Kopfzeilen und Datumsformatierung
- 22. Android-Liste mit Abschnitt Kopfzeilen
- 23. Wie man eine einzigartige Sitzungs-ID in PHP generiert
- 24. Sinatra Streaming-Antwort mit Kopfzeilen
- 25. Wie generiert man .env-Datei für Laravel?
- 26. wie man eine Teilansicht innerhalb eines Anchor-Tags lädt, das über Ajax generiert wurde
- 27. Horizontale Spalten mit mehrspaltigen Kopfzeilen
- 28. Animated Leinwand mit dynamischen Abschnitten
- 29. UITableView CoreData Bestellung mit Abschnitten
- 30. Wie man eine Klasse von einer Schnittstelle generiert
Wenn Sie etwas erstellen, das dem Screenshot sehr ähnlich ist, können solche Bildschirme sehr einfach mit android.preference.PreferenceActivity erstellt werden. Die Teiler werden mit dem Attribut android: title des PreferenceCategory-Elements in den von diesem geladenen XML-Einstellungen erstellt. Allerdings nicht als Antwort, da ich in diesem Fall nicht von einer eigenen ListView spreche. Es handhabt das für Sie. –