In Flutter, Navigator är ett kraftfullt verktyg för att hantera centraliserad status och sidnavigering i din app. Det låter dig bygga appar med tydlig arkitektur och enkel navigering mellan skärmar.
Definiera Routes
För att börja använda Navigator måste du definiera routes i din app. Routes är individuella skärmar som användare kan navigera till. Du kan definiera routes med MaterialApp och tillhandahålla en samling av, routes där var och en route är mappad till en Widget.
Exempel:
MaterialApp(
initialRoute: '/',
routes: {
'/':(context) => HomePage(),
'/second':(context) => SecondPage(),
},
)
I exemplet ovan har vi definierat två routes: '/'(home page)
och '/second'(second page
). Du kan lägga till så många routes som behövs.
Navigera mellan sidor
För att navigera mellan sidor kan du använda Navigator 's metoder. En vanlig metod är pushNamed, som låter dig navigera till en annan sida genom att ange namnet på den route.
Exempel:
// Navigate to the second page
Navigator.pushNamed(context, '/second');
Dessutom kan du använda push-metoden för att navigera till en annan route och växla mellan sidor.
Skicka data mellan sidor
Du kan skicka data mellan sidor genom att använda pushNamed-metoden med parametern arguments.
Exempel:
Navigator.pushNamed(
context,
'/second',
arguments: 'Data from the home page',
);
Sedan kan du komma åt data från den andra sidan med hjälp av ModalRoute.of och inställningsobjekt:
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
String data = ModalRoute.of(context).settings.arguments;
// Use the data here
}
}
Gå tillbaka till föregående sida
För att gå tillbaka till föregående sida kan du använda popmetoden för Navigator. Detta kommer att stänga den aktuella sidan och återgå till föregående sida i stacken.
Exempel:
// Go back to the previous page
Navigator.pop(context);
Slutsats
Navigator i Flutter låter dig hantera centraliserat tillstånd och enkelt navigera mellan sidor. Genom att använda Navigator kan du bygga appar med tydlig arkitektur och ge en bättre användarupplevelse när du navigerar mellan skärmar.