Flutter: Kostra aplikace

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Kostra stránky.)
 
(Základní kostra aplikace s měnícím se obsahem: Přidána metoda dispose().)
 
(Nejsou zobrazeny 4 mezilehlé verze od 1 uživatele.)
Řádka 2: Řádka 2:
  
 
== Základní kostra aplikace s měnícím se obsahem ==
 
== Základní kostra aplikace s měnícím se obsahem ==
 +
 +
Metoda <code>main()</code> &mdash; zde se začne provádět program:
  
 
  void main() {
 
  void main() {
 
   runApp(const MainApp());
 
   runApp(const MainApp());
 
  }
 
  }
 +
 +
; StatelessWidget – neměnná část aplikace.
 +
 +
* Základ aplikace je neměnný. Pokud bychom měli aplikaci ``Hello World`` a podobné, stačilo by nám jejich vzhled nadefinovat v hlavní třídě.
 +
* Části, které se musí překreslit nebo které mění obsah, jsou součásti stavu aplikace.
  
 
  class MainApp extends StatelessWidget {
 
  class MainApp extends StatelessWidget {
Řádka 17: Řádka 24:
 
   }
 
   }
 
  }
 
  }
 +
 +
; StatefulWidget – část UI, která se musí překreslit v&nbsp;průběhu životního cyklu aplikace.
  
 
  class XyzMainPage extends StatefulWidget {
 
  class XyzMainPage extends StatefulWidget {
Řádka 26: Řádka 35:
 
   State<XyzMainPage> createState() => _XyzMainPageState();
 
   State<XyzMainPage> createState() => _XyzMainPageState();
 
  }
 
  }
 +
 +
; Reprezentace aktuálního stavu aplikace – State
  
 
  class _XyzMainPageState extends State<XyzMainPage> {
 
  class _XyzMainPageState extends State<XyzMainPage> {
 
   
 
   
   // Datový model aplikace
+
   // Data aplikace
 
    
 
    
 
   // Metody pro práci s daty
 
   // Metody pro práci s daty
 
   // Controllery tlačítek
 
   // Controllery tlačítek
 
   
 
   
 +
  void _akceProvadejiciZmenuStavuOkna() { // Například reakce na stisk tlačítka.
 +
      setState(() { ... });
 +
  }
 +
 
 +
  @override
 +
  void dispose() {      // Uvolnění případných kontrollerů, pokud jsou.
 +
    _abcController.dispose();
 +
    super.dispose();
 +
  }
 +
 
 
   @override
 
   @override
 
   Widget build(BuildContext context) {
 
   Widget build(BuildContext context) {
Řádka 50: Řádka 71:
 
             ],
 
             ],
 
           ),
 
           ),
 +
        ),
 +
        floatingActionButton: FloatingActionButton(
 +
          onPressed: _metodaProvedeniAkce,
 +
          tooltip: 'Nápověda k tlačítku',
 +
          child: const Icon(Icons.add),
 
         ),
 
         ),
 
       );
 
       );
 
   }
 
   }
 
  }
 
  }
 +
 +
== Související stránky ==
 +
* Základní widgety pro vytvoření obsahu okna: [[Flutter: Základní widgety]].

Aktuální verze z 14. 12. 2025, 18:39


Základní kostra aplikace s měnícím se obsahem

Metoda main() — zde se začne provádět program:

void main() {
  runApp(const MainApp());
}
StatelessWidget – neměnná část aplikace.
class MainApp extends StatelessWidget {
  const MainApp({super.key}); 

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: XyzMainPage(title: 'Název aplikace'),
    );
  }
}
StatefulWidget – část UI, která se musí překreslit v průběhu životního cyklu aplikace.
class XyzMainPage extends StatefulWidget {
  const XyzMainPage({super.key, required this.title});

  final String title;

  @override
  State<XyzMainPage> createState() => _XyzMainPageState();
}
Reprezentace aktuálního stavu aplikace – State
class _XyzMainPageState extends State<XyzMainPage> {

  // Data aplikace
 
  // Metody pro práci s daty
  // Controllery tlačítek

  void _akceProvadejiciZmenuStavuOkna() { // Například reakce na stisk tlačítka.
     setState(() { ... });
  }
 
  @override
  void dispose() {      // Uvolnění případných kontrollerů, pokud jsou.
    _abcController.dispose();
    super.dispose();
  }
  
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          backgroundColor: Colors.green,
          title: Text(widget.title),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[

              // Widgety v hlavním okně

            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: _metodaProvedeniAkce,
          tooltip: 'Nápověda k tlačítku',
          child: const Icon(Icons.add),
        ),
      );
  }
}

Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje