1. Dart-Liste wiederholen
Eine Liste speichert mehrere Werte in einer Reihenfolge.
final names = ['Jutta', 'Jens', 'Mira'];
print(names[0]); // Jutta
Lektion 13 - Listen in Flutter
Listen sind in Flutter sehr wichtig: Du hast mehrere Daten, zum Beispiel Namen, Aufgaben oder Produkte, und erzeugst daraus mehrere sichtbare Widgets.
Eine Liste speichert mehrere Werte in einer Reihenfolge.
final names = ['Jutta', 'Jens', 'Mira'];
print(names[0]); // Jutta
Flutter braucht Widgets. Deshalb wandelst du Listeneintraege oft in
Text, Card oder eigene Widgets um.
Column(
children: names
.map((name) => Text(name))
.toList(),
)
map geht jeden Eintrag durch und macht daraus etwas Neues. In Flutter:
Aus jedem Datensatz wird ein Widget.
name -> Text(name)
'Jutta' -> Text('Jutta')
'Jens' -> Text('Jens')
'Mira' -> Text('Mira')
toList() ist wichtig, weil children eine echte Liste von Widgets erwartet.
Wenn eine Liste laenger werden kann, ist ListView besser als eine einfache
Column. ListView kann scrollen.
ListView(
children: names
.map((name) => ListTile(title: Text(name)))
.toList(),
)
ListView.builder baut Eintraege erst, wenn sie gebraucht werden. Das ist gut
fuer lange Listen.
ListView.builder(
itemCount: names.length,
itemBuilder: (context, index) {
final name = names[index];
return ListTile(title: Text(name));
},
)
Wie viele Eintraege gibt es?
Position des aktuellen Eintrags.
Funktion, die fuer jeden Eintrag ein Widget baut.
Wenn du Eintraege hinzufuegst oder entfernst, muss das in setState passieren.
final List<String> tasks = [];
void addTask(String task) {
setState(() {
tasks.add(task);
});
}
Plane eine Aufgabenliste: Ein Button fuegt eine Aufgabe hinzu, die Liste zeigt alle Aufgaben.
Setze tasks als leere Liste
Zeige alle Aufgaben als Liste
Wenn Button "Hinzufuegen" gedrueckt wird:
Fuege neue Aufgabe zur Liste hinzu
Zeichne UI neu
Fuer jede Aufgabe in tasks:
Erzeuge ein sichtbares Listenelement
Column und einmal mit ListView.builder.setState beim Hinzufuegen notwendig ist.