La navigation et le routage sont des aspects fondamentaux du développement d'applications. Ils permettent aux utilisateurs de se déplacer entre différents écrans et d'effectuer différentes actions. Dans Flutter, la gestion de l'historique de navigation se fait via une pile d'itinéraires, où chaque itinéraire représente un nouvel écran ou une nouvelle page. Flutter utilise le package Dart « dart:ui » pour gérer cette pile de routes.
Pour commencer, il est important de comprendre le concept d'itinéraires dans Flutter. Un itinéraire est une abstraction pour un « écran » ou une « page » d’une application. Dans Flutter, les itinéraires sont représentés par des widgets. Chaque itinéraire que vous empruntez est empilé au-dessus de la pile d'itinéraires. La route en haut de la pile est la route actuellement active.
Pour naviguer vers un nouvel itinéraire, vous pouvez utiliser la méthode Navigator.push. Cette méthode ajoute la route spécifiée en haut de la pile de routes. Flutter anime automatiquement la transition vers le nouvel itinéraire pour vous. Voici un exemple de la façon dont vous pouvez utiliser Navigator.push :
Cela amènera Flutter à créer le widget SecondRoute et à l'animer sur l'écran, en superposant l'itinéraire actuel. Lorsque vous souhaitez revenir à l'itinéraire précédent, vous pouvez utiliser la méthode Navigator.pop. Cette méthode supprime la route supérieure de la pile et revient à la route précédente. Voici un exemple de la façon dont vous pouvez utiliser Navigator.pop :
Cela permettra à Flutter de retirer l'itinéraire actuel de la pile et de revenir à l'itinéraire précédent, animant ainsi la transition pour vous.
Dans certains cas, vous souhaiterez peut-être accéder à un itinéraire et supprimer tous les itinéraires précédents de la pile. Pour ce faire, vous pouvez utiliser la méthode Navigator.pushAndRemoveUntil. Cette méthode pousse la route spécifiée vers le haut de la pile et supprime toutes les autres routes jusqu'à ce que la condition donnée soit satisfaite. Voici un exemple de la façon dont vous pouvez utiliser Navigator.pushAndRemoveUntil :
Cela amènera Flutter à créer le widget SecondRoute, à l'animer à l'écran et à supprimer toutes les autres routes de la pile.
De plus, Flutter fournit également un moyen de définir des itinéraires nommés. Les itinéraires nommés sont utiles lorsque vous devez accéder à un itinéraire à partir de plusieurs endroits de votre application. Pour définir une route nommée, vous pouvez utiliser le paramètre onGenerateRoute du widget MaterialApp ou CupertinoApp. Voici un exemple de la façon dont vous pouvez définir des itinéraires nommés :
Pour naviguer vers un itinéraire nommé, vous pouvez utiliser la méthode Navigator.pushNamed. Cette méthode place la route portant le nom spécifié en haut de la pile. Voici un exemple de la façon dont vous pouvez utiliser Navigator.pushNamed :
En bref, la navigation et le routage dans Flutter sont gérés via une pile de routes. Chaque itinéraire représente un « écran » ou une « page » d'une application. Vous pouvez naviguer vers un nouvel itinéraire à l'aide de la méthode Navigator.push et revenir à l'itinéraire précédent à l'aide de la méthode Navigator.pop. De plus, Flutter fournit également un moyen de définir des itinéraires nommés, ce qui est utile lorsque vous devez naviguer vers un itinéraire à partir de plusieurs endroits dans votre application.