Xamarin.Forms-ListView
ListView
ist eine Ansicht zum Darstellen von Listen von Daten, insbesondere langen Listen, die ein Blättern erfordern.
Wichtig
CollectionView
ist eine Ansicht für die Darstellung von Listen mit Daten mit unterschiedlichen Layoutspezifikationen. Es zielt darauf ab, eine flexiblere und leistungsfähigere Alternative zu ListView
zu bieten. Weitere Informationen finden Sie unter Xamarin.Forms: CollectionView.
Anwendungsfälle
Ein ListView
-Steuerelement kann in jeder Situation verwendet werden, in der blätterbare Listen mit Daten angezeigt werden. Die ListView
-Klasse unterstützt Kontextaktionen und Datenbindung.
Das ListView
-Steuerelement sollte nicht mit dem TableView
-Steuerelement verwechselt werden. Das TableView
-Steuerelement ist eine bessere Option, wenn Sie über eine nicht gebundene Liste von Optionen oder Daten verfügen, da es die Angabe von vordefinierten Optionen in XAML ermöglicht. Beispielsweise ist die iOS-Einstellungen-App, die über einen meist vordefinierten Satz von Optionen verfügt, besser geeignet für die Verwendung einer TableView
als einer ListView
.
Die ListView
-Klasse unterstützt das Definieren von Listenelementen in XAML nicht, Sie müssen die ItemsSource
-Eigenschaft oder die Datenbindung mit einer ItemTemplate
zum Definieren von Elementen in der Liste verwenden.
Eine ListView
eignet sich am besten für Sammlungen, die aus einem einzelnen Datentyp bestehen. Dies ist erforderlich, da für jede Zeile in der Liste nur ein Zellentyp verwendet werden kann. Das TableView
-Steuerelement kann mehrere Zellentypen unterstützen, daher ist es eine bessere Option, wenn Sie mehrere Datentypen anzeigen müssen.
Weitere Informationen zum Binden von Daten an eine ListView
-Instanz finden Sie in ListView-Datenquellen.
Komponenten
Das ListView
-Steuerelement verfügt über eine Reihe von Komponenten, die zur Ausübung der nativen Funktionalität jeder Plattform verfügbar sind. Diese Komponenten werden in den folgenden Abschnitten definiert.
Kopf- und Fußzeilen
Kopf- und Fußzeilenkomponenten werden am Anfang und Ende einer Liste angezeigt, getrennt von den Daten der Liste. Kopf- und Fußzeilen können an eine von der Datenquelle von ListView getrennte Datenquelle gebunden sein.
Gruppen
Daten in einer ListView
können zur einfacheren Navigation gruppiert werden. Gruppen sind in der Regel an Daten gebunden. Der folgende Screenshot zeigt eine ListView
mit gruppierten Daten:
Zellen
Datenelemente in einer ListView
werden als Zellen bezeichnet. Jede Zelle entspricht einer Datenzeile. Es gibt integrierte Zellen, aus denen Sie auswählen können, oder Sie können Ihre eigene benutzerdefinierte Zelle definieren. Sowohl integrierte als auch benutzerdefinierte Zellen können in XAML oder Code verwendet/definiert werden.
- Integrierte Zellen, z. B. die
TextCell
undImageCell
, entsprechen nativen Steuerelementen und sind besonders leistungsfähig. - Benutzerdefinierte Zellen werden verwendet, um komplexe Daten darzustellen. Beispielsweise könnte eine benutzerdefinierte Zelle verwendet werden, um eine Liste der Songs zu präsentieren, die das Album und den Künstler enthalten.
Der folgende Screenshot zeigt eine ListView
mit ImageCell-Elementen:
Weitere Informationen zum Anpassen von Zellen in einer ListView
finden Sie unter Anpassen der ListView-Zellendarstellung.
Funktionalität
Die ListView
-Klasse unterstützt eine Reihe von Interaktionsstilen.
- Mit Pull-to-Refresh (Ziehen zum Aktualisieren) können Benutzer*innen die
ListView
nach unten ziehen, um die Inhalte zu aktualisieren. - Kontextaktionen ermöglichen es Entwickler*innen, benutzerdefinierte Aktionen für einzelne Listenelemente festzulegen. Sie können z. B. Swipe-to-Action (Wischen für Aktion) unter iOS implementieren, oder Long-Tap (Langes Tippen)-Aktionen unter Android.
- Die Auswahl ermöglicht es Entwickler*innen, Funktionalität an Auswahl- und Abwahlereignisse für Listenelemente anzufügen.
Der folgende Screenshot zeigt eine ListView
mit Kontextaktionen:
Weitere Informationen zu den Interaktivitätsfunktionen von ListView
finden Sie unter Aktionen und Interaktivität mit ListView.