Junior — Middle
Vysvetlite koncept StatefulWidget vo Flutteri a v čom sa líši od StatelessWidget?
sobes.tech AI
Odpoveď od AI
V Flutteri je StatefulWidget widget, ktorý môže meniť svoj stav počas behu aplikácie. Ukladá svoj stav v samostatnom objekte State, a keď sa tento stav zmení, volá sa metóda setState(), ktorá aktualizuje rozhranie.
Na rozdiel od toho, StatelessWidget nemá vnútorný stav a je vždy zostavený na základe odovzdaných parametrov. Po vytvorení sa nemení.
Príklad:
class CounterWidget extends StatefulWidget {
@override
_CounterWidgetState createState() => _CounterWidgetState();
}
class _CounterWidgetState extends State<CounterWidget> {
int _counter = 0;
void _increment() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Text('Počítadlo: \\$_counter'),
ElevatedButton(onPressed: _increment, child: Text('Zvýšiť')),
],
);
}
}
Tu je CounterWidget StatefulWidget, pretože hodnota počítadla sa mení a ovplyvňuje UI. Ak by sa stav nemenil, mohol by byť použitý StatelessWidget.