Sobes.tech
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.