Quelques usages
La classe Navigator
de Flutter offre plusieurs méthodes pour gérer la navigation entre les écrans de votre application. Voici quelques-unes des propriétés les plus couramment utilisées :
push : Utilisée pour naviguer vers un nouvel écran en poussant une nouvelle route sur la pile de navigation.
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
pushNamed : Utilisée pour naviguer vers un nouvel écran en utilisant le nom de la route prédéfinie.
Navigator.pushNamed(context, '/second');
Dans cet exemple, '/second'
est le nom de la route vers laquelle nous voulons naviguer. Les routes doivent être définies dans la propriété routes
de MaterialApp
pour que cette méthode fonctionne correctement. Par exemple :
MaterialApp(
routes: {
'/second': (context) => SecondScreen(),
},
);
Lorsque la méthode pushNamed
est appelée, Flutter recherche le nom de la route dans la liste des routes définies et affiche l'écran de destination correspondant. Cette méthode est utile pour naviguer vers des écrans dont vous connaissez le nom de la route, ce qui peut rendre votre code plus lisible et maintenable.
pop : Utilisée pour revenir à l'écran précédent en retirant la route actuelle de la pile de navigation.
Navigator.pop(context);
popUntil : Utilisée pour revenir à une certaine route en retirant les routes de la pile de navigation jusqu'à ce que la condition spécifiée soit remplie.
Navigator.popUntil(context, ModalRoute.withName('/home'));
canPop : Renvoie un booléen indiquant si la navigation en arrière est possible à partir de l'écran actuel.
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
replace : Utilisée pour remplacer la route actuelle par une nouvelle route.
Navigator.replace(
context,
oldRoute: ModalRoute.of(context),
newRoute: MaterialPageRoute(builder: (context) => NewScreen()),
);
restorablePush : Utilisée pour naviguer vers un nouvel écran tout en permettant à l'utilisateur de restaurer l'état de l'écran précédent.
Navigator.restorablePush(
context,
MaterialPageRoute(builder: (context) => DetailScreen()),
);
Last updated