En Flutter, todo es un widget. Los widgets son los bloques de construcción fundamentales de la interfaz de usuario en Flutter y cada widget es una clase inmutable en Dart. Hay dos tipos principales de widgets en Flutter: StatelessWidget
y StatefulWidget
.
Un StatelessWidget
en Flutter es un widget que describe parte de la interfaz de usuario que puede cambiar dependiendo de la configuración y el contexto. No tiene estado mutable que cambie durante su vida útil. Es inmutable, lo que significa que una vez que se dibuja en la pantalla, no puede cambiar su estado mediante ninguna operación. Ejemplos de widgets sin estado son Icon, IconButton y Text.
class MyStatelessWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Text('Hola Mundo'),
);
}
}
Un StatefulWidget, por otro lado, es mutable. Un StatefulWidget puede cambiar su apariencia y estado durante su vida útil. Puede redibujarse en la pantalla con cambios en los datos. Ejemplos de widgets con estado son Checkbox, Radio, Slider, InkWell, Form y TextField.
class MyStatefulWidget extends StatefulWidget {
@override
_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State {
bool _isChecked = false;
@override
Widget build(BuildContext context) {
return Checkbox(
value: _isChecked,
onChanged: (bool value) {
setState(() {
_isChecked = value;
});
},
);
}
}