Aller au contenu

Navigation et état global

Cette section explique la navigation centrale et les gestionnaires d'état utilisés dans l'application.


ValueNotifiers

  • selectedPageNotifier : index de la page courante.
  • pageStack : pile pour gérer le retour (backPage, canGoBack).
  • batman : préférence de thème (persistée via SharedPreferences).
  • currentHousingNotifier / currentFloorNotifier : logement et étage actifs pour les vues plan.

WidgetTree

  • views/widget_tree.dart instancie les pages : Home (0), Propositions (1), Plan (2), Solution (3), Aides (4), Paramètres (5), Chauffage (6), Nouveau logement (7).
  • La NavbarWidget est affichée sauf pour Home, Paramètres et Nouveau logement.
  • Un PopScope centralise la gestion du bouton retour via la pile pageStack.

Barre de navigation

  • widgets/navbar_widget.dart relie les boutons à selectedPageNotifier et utilise navigateToPage pour synchroniser la pile et l'index affiché.

Thème

  • loadBatman() lit la préférence au lancement, initBatmanPersistence() la sauvegarde.
  • MyApp applique un thème clair/sombre dynamique avec ColorScheme.fromSeed.

Toute navigation doit passer par navigateToPage (et backPage pour le retour) afin de conserver un historique cohérent.