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.