Sobes.tech
Junior — Middle

Wyjaśnij koncepcję StatefulWidget w Flutter i czym różni się od StatelessWidget?

sobes.tech AI

Odpowiedź od AI

W Flutterze StatefulWidget to widżet, który może zmieniać swój stan podczas działania aplikacji. Przechowuje stan w osobnym obiekcie State, a gdy ten stan się zmienia, wywoływana jest metoda setState(), która aktualizuje interfejs.

W przeciwieństwie do tego, StatelessWidget nie ma wewnętrznego stanu i jest zawsze tworzony na podstawie przekazanych mu parametrów. Nie zmienia się po utworzeniu.

Przykład:

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

Tutaj CounterWidget jest StatefulWidget, ponieważ wartość licznika się zmienia i wpływa na UI. Gdyby stan się nie zmieniał, można by użyć StatelessWidget.