Flutter: ListView
Z MiS
(Rozdíly mezi verzemi)
(Vytvoření základu stránky.) |
(Formátování, upřesnění title a subtitle) |
||
| Řádka 2: | Řádka 2: | ||
== ListView == | == ListView == | ||
| − | * <code>ListView</code> slouží pro zobrazení dynamického seznamu položek, | + | * <code>ListView</code> slouží pro zobrazení dynamického seznamu položek, kterým lze skrolovat. |
* Lze ho využít například pro zobrazení položek ze seznamu či pro položky, které přidáváme postupně. | * Lze ho využít například pro zobrazení položek ze seznamu či pro položky, které přidáváme postupně. | ||
| − | == | + | == Příklad zobrazení seznamu == |
* Pro zobrazení seznamu <code>seznam</code> můžeme použít ListView: | * Pro zobrazení seznamu <code>seznam</code> můžeme použít ListView: | ||
| + | List<Element> seznam = ...; | ||
| + | |||
Expanded( | Expanded( | ||
child: ListView.builder( | child: ListView.builder( | ||
| Řádka 12: | Řádka 14: | ||
itemBuilder: (context, index) { | itemBuilder: (context, index) { | ||
return ListTile( | return ListTile( | ||
| − | title: Text('${_seznam[index]. | + | title: Text('${_seznam[index].nazev}'), |
| − | subtitle: Text('${_seznam[index]. | + | subtitle: Text('${_seznam[index].popis}'), |
); | ); | ||
}, | }, | ||
| Řádka 22: | Řádka 24: | ||
== Vytvoření ListView == | == Vytvoření ListView == | ||
| − | === ListView( | + | === ListView.builder() === |
| − | * | + | * Používá se pro delší nebo dynamické seznamy (nejčastější varianta). |
| + | * Vytváří položky až když jsou potřeba (lepší výkon) | ||
| − | + | ListView.builder( | |
| − | ListView( | + | itemCount: 10, |
| − | + | itemBuilder: (context, index) { | |
| − | + | return ListTile( | |
| − | + | title: Text('Položka $index'), | |
| − | + | ); | |
| − | + | }, | |
| − | ) | + | ) |
| − | + | ||
| − | === ListView | + | === ListView(children: []) === |
| − | * | + | * Vhodné pro krátké statické seznamy — nelze přidávat položky. |
| − | + | ||
| − | + | ListView( | |
| − | ListView | + | children: [ |
| − | + | ListTile(title: Text('Položka 1')), | |
| − | + | ListTile(title: Text('Položka 2')), | |
| − | + | ListTile(title: Text('Položka 3')), | |
| − | + | ], | |
| − | + | ) | |
| − | + | ||
| − | ) | + | |
| − | + | ||
| Řádka 56: | Řádka 54: | ||
; Vlastnosti <code>ListTile</code>: | ; Vlastnosti <code>ListTile</code>: | ||
| − | * | + | * <code>title</code> – hlavní text (nadpis položky) |
| − | * | + | * <code>subtitle</code> – doplňující popis položky |
| − | * | + | * <code>leading</code> – ikona vlevo |
| + | * <code>trailing</code> – ikona vpravo | ||
| + | * <code>onTap</code> – reakce na kliknutí | ||
| + | |||
| + | ; Příklad použití: | ||
| − | + | ListTile( | |
| − | ListTile( | + | leading: Icon(Icons.person), |
| − | + | title: Text('Karel Dvořák'), | |
| − | + | subtitle: Text('místnost: 33'), | |
| − | + | trailing: Icon(Icons.arrow_forward), | |
| − | + | onTap: () { | |
| − | + | _reakceNaKlik; | |
| − | + | }, | |
| − | ) | + | ) |
| − | + | ||
Aktuální verze z 26. 1. 2026, 11:16
Obsah |
[editovat] ListView
-
ListViewslouží pro zobrazení dynamického seznamu položek, kterým lze skrolovat. - Lze ho využít například pro zobrazení položek ze seznamu či pro položky, které přidáváme postupně.
[editovat] Příklad zobrazení seznamu
- Pro zobrazení seznamu
seznammůžeme použít ListView:
List<Element> seznam = ...;
Expanded(
child: ListView.builder(
itemCount: _seznam.length,
itemBuilder: (context, index) {
return ListTile(
title: Text('${_seznam[index].nazev}'),
subtitle: Text('${_seznam[index].popis}'),
);
},
),
),
[editovat] Vytvoření ListView
[editovat] ListView.builder()
- Používá se pro delší nebo dynamické seznamy (nejčastější varianta).
- Vytváří položky až když jsou potřeba (lepší výkon)
ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return ListTile(
title: Text('Položka $index'),
);
},
)
[editovat] ListView(children: [])
- Vhodné pro krátké statické seznamy — nelze přidávat položky.
ListView(
children: [
ListTile(title: Text('Položka 1')),
ListTile(title: Text('Položka 2')),
ListTile(title: Text('Položka 3')),
],
)
[editovat] ListTile: položka seznamu
- Jednu položku dynamického seznamu reprezentuje widget
ListTile
- Vlastnosti
ListTile
-
title– hlavní text (nadpis položky) -
subtitle– doplňující popis položky -
leading– ikona vlevo -
trailing– ikona vpravo -
onTap– reakce na kliknutí
- Příklad použití
ListTile(
leading: Icon(Icons.person),
title: Text('Karel Dvořák'),
subtitle: Text('místnost: 33'),
trailing: Icon(Icons.arrow_forward),
onTap: () {
_reakceNaKlik;
},
)