Flutter: Základní widgety
Z MiS
(Rozdíly mezi verzemi)
(→ListView: Kostra ListView) |
(→Textová pole: hintText, ohraničení textového pole.) |
||
(Nejsou zobrazeny 3 mezilehlé verze od 1 uživatele.) | |||
Řádka 26: | Řádka 26: | ||
* Obdobně lze <code>int.parse(...)</code>. | * Obdobně lze <code>int.parse(...)</code>. | ||
+ | ; Další možnosti <code>InputDecoration</code>: | ||
+ | contentPadding: EdgeInsets.all(20.0), | ||
+ | * Odsazení obsahu | ||
+ | border: OutlineInputBorder(), | ||
+ | * Ohraničení textového pole | ||
+ | hintText: 'Text' | ||
+ | * Nahrazuje <code>labelText</code>, ale po zadání textu do pole zmizí. | ||
== Tlačítka == | == Tlačítka == | ||
Řádka 46: | Řádka 53: | ||
), | ), | ||
), | ), | ||
+ | |||
+ | == Textová popiska == | ||
+ | const Text('Záznamy o tankování:',), | ||
== Jednoduchý dialog == | == Jednoduchý dialog == | ||
− | + | Pro zobrazení dialogu si můžeme vytvořit metodu: | |
− | + | Future<void> displayDialog(String messageText) => showDialog<void>( | |
− | + | context: context, | |
− | + | builder: (context) { | |
− | + | return AlertDialog( | |
− | + | title: const Text('Chybně zadaná data:'), | |
− | + | content: Text(messageText), | |
− | + | actions: <Widget>[ | |
− | + | TextButton( | |
− | + | onPressed: () { | |
− | + | Navigator.of(context).pop(); | |
− | + | }, | |
− | + | child: const Text('OK'), | |
− | + | ), | |
− | + | ], | |
− | + | ); | |
− | ); | + | }, |
+ | ); | ||
+ | |||
+ | Metodu následně voláme: | ||
+ | displayDialog('Text'); |
Aktuální verze z 12. 3. 2025, 10:22
Obsah |
[editovat] Uspořádání stránky
Center( child: ... )
Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ ... ] )
[editovat] Textová pole
TextField( controller: _abcController, decoration: const InputDecoration( labelText: 'Popis – co zadávat', ), keyboardType: TextInputType.number, // Pokud chceme omezit vstup na číselné hodnoty ),
- Kontroler textového pole
final TextEditingController _abcController = TextEditingController();
- Zpracování obsahu textového pole
final double totalPrice = double.parse(parsedValue = _abcController.text.trim());
- Obdobně lze
int.parse(...)
.
- Další možnosti
InputDecoration
contentPadding: EdgeInsets.all(20.0),
- Odsazení obsahu
border: OutlineInputBorder(),
- Ohraničení textového pole
hintText: 'Text'
- Nahrazuje
labelText
, ale po zadání textu do pole zmizí.
[editovat] Tlačítka
ElevatedButton( onPressed: _nazevMetodyReakce, child: const Text('Popis tlačítka'), ),
[editovat] ListView
- Pro zobrazení seznamu
seznam
můžeme použít ListView:
Expanded( child: ListView.builder( itemCount: _seznam.length, itemBuilder: (context, index) { return ListTile( title: Text('${_seznam[index].abc}'), subtitle: Text('${_seznam[index].def}'), ); }, ), ),
[editovat] Textová popiska
const Text('Záznamy o tankování:',),
[editovat] Jednoduchý dialog
Pro zobrazení dialogu si můžeme vytvořit metodu:
Future<void> displayDialog(String messageText) => showDialog<void>( context: context, builder: (context) { return AlertDialog( title: const Text('Chybně zadaná data:'), content: Text(messageText), actions: <Widget>[ TextButton( onPressed: () { Navigator.of(context).pop(); }, child: const Text('OK'), ), ], ); }, );
Metodu následně voláme:
displayDialog('Text');