Sobes.tech
Junior — Middle

Spiega il concetto di StatefulWidget in Flutter e in cosa si differenzia da StatelessWidget?

sobes.tech AI

Risposta dell'AI

In Flutter, StatefulWidget è un widget che può modificare il proprio stato durante l'esecuzione dell'applicazione. Memorizza il suo stato in un oggetto separato State, e quando questo stato cambia, viene chiamato il metodo setState(), che aggiorna l'interfaccia.

Al contrario, StatelessWidget non ha stato interno e viene sempre costruito in base ai parametri passati. Non cambia dopo la creazione.

Esempio:

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('Contatore: \\$_counter'),
        ElevatedButton(onPressed: _increment, child: Text('Aumenta')),
      ],
    );
  }
}

Qui, CounterWidget è un StatefulWidget perché il valore del contatore cambia e influisce sull'UI. Se lo stato non cambiasse, si potrebbe usare un StatelessWidget.