🛢️Parcours Fioul GroupéFlutter · Chapitre 06
Accueil › Flutter › Chapitre 06
Chapitre 06 / 19

Stateless, Stateful, Card & InkWell

La distinction fondamentale entre widgets figés et widgets à état, comment mettre à jour l'écran avec setState, et deux widgets utiles : Card et InkWell.

1 Notion

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);
}
2 Notion

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();
}
3 Notion

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)'),
)
4 Notion

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')),
))
🛢️ Sur le projet Fioul Groupé

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).

À retenir
  • Stateless = figé ; Stateful = état mutable.
  • setState() déclenche la reconstruction de l'écran.
  • Card pour la présentation ; InkWell pour rendre cliquable.
← Chapitre 05