Sobes.tech
Junior — Middle

Magyarázza el a StatefulWidget fogalmát a Flutterben, és miben különbözik a StatelessWidget-től?

sobes.tech MI

Válasz az MI-től

Flutterben a StatefulWidget egy olyan widget, amely képes az állapotát módosítani az alkalmazás futása közben. Az állapotát egy külön State objektumban tárolja, és amikor ez az állapot változik, a setState() metódus hívódik, amely frissíti a felületet.

Ezzel szemben a StatelessWidget nem rendelkezik belső állapottal, és mindig a neki átadott paraméterek alapján épül fel. Nem változik a létrehozása után.

Példa:

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('Számláló: \\$_counter'),
        ElevatedButton(onPressed: _increment, child: Text('Növel')),
      ],
    );
  }
}

Itt a CounterWidget egy StatefulWidget, mert a számláló értéke változik és befolyásolja a UI-t. Ha az állapot nem változna, használhatnánk egy StatelessWidget-et.