StatelessWidget
Un widget sans état : son apparence dépend uniquement de ses paramètres. Il ne change pas après affichage (sauf si son parent le reconstruit avec d'autres valeurs).
class CarteCampagne extends StatelessWidget { final String zone; const CarteCampagne(this.zone, {super.key}); @override Widget build(BuildContext c) => Text(zone); }
StatefulWidget
Un widget avec état mutable : il possède un objet State qui conserve des données pouvant évoluer (une saisie, un compteur, un chargement).
class Inscription extends StatefulWidget { @override State<Inscription> createState() => _InscriptionState(); }
Mettre à jour avec setState
Modifier une variable d'état ne suffit pas : il faut appeler setState() pour que Flutter reconstruise l'écran.
int _litres = 0; ElevatedButton( onPressed: () => setState(() => _litres += 100), child: Text('+100 L (total : $_litres)'), )
Card & InkWell
Card affiche un contenu dans une carte surélevée (ombre, coins arrondis). InkWell rend une zone cliquable avec un effet d'onde au tap.
Card(child: InkWell(
onTap: () { /* ouvrir le détail */ },
child: Padding(padding: EdgeInsets.all(16), child: Text('Ladignac')),
))
Fais de CarteCampagne un StatelessWidget (elle ne fait qu'afficher), et enveloppe-la dans une Card + InkWell pour ouvrir le détail au tap. L'écran d'inscription, lui, sera Stateful (il gère la saisie).
- Stateless = figé ; Stateful = état mutable.
setState()déclenche la reconstruction de l'écran.Cardpour la présentation ;InkWellpour rendre cliquable.