StatelessWidget: Used when the UI doesn't need to change
class WelcomeMessage extends StatelessWidget {
final String name;
WelcomeMessage(this.name);
@override
Widget build(BuildContext context) {
return Text('Welcome, $name!');
}
}
StatefulWidget: Used when the UI needs to change based on user interaction or other events
class ToggleButton extends StatefulWidget {
@override
_ToggleButtonState createState() => _ToggleButtonState();
}
class _ToggleButtonState extends State<ToggleButton> {
bool isPressed = false;
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: () => setState(() => isPressed = !isPressed),
child: Text(isPressed ? 'ON' : 'OFF'),
);
}
}