U Flutteru Navigator je moćan alat za upravljanje centraliziranim stanjem i navigacijom stranica u vašoj aplikaciji. Omogućuje vam izradu aplikacija s jasnom arhitekturom i jednostavnom navigacijom između zaslona.
Definiranje Routes
Da biste počeli koristiti Navigator, trebate definirati routes u svojoj aplikaciji. Routes pojedinačni su zasloni do kojih se korisnici mogu kretati. Možete definirati routes pomoću MaterialApp-a i osigurati kolekciju routes, gdje route je svaki preslikan u Widget.
Primjer:
MaterialApp(
initialRoute: '/',
routes: {
'/':(context) => HomePage(),
'/second':(context) => SecondPage(),
},
)
U gornjem primjeru definirali smo dva routes: '/'(home page)
i '/second'(second page
). Možete dodati onoliko routes koliko je potrebno.
Kretanje između stranica
Za navigaciju između stranica možete koristiti Navigator metode korisnika. Jedna uobičajena metoda je pushNamed, koja vam omogućuje da prijeđete na drugu stranicu dajući naziv te route.
Primjer:
// Navigate to the second page
Navigator.pushNamed(context, '/second');
Osim toga, možete koristiti push metodu za navigaciju na drugu route i prebacivanje između stranica.
Prijenos podataka između stranica
Možete proslijediti podatke između stranica pomoću metode pushNamed s parametrom argumenata.
Primjer:
Navigator.pushNamed(
context,
'/second',
arguments: 'Data from the home page',
);
Zatim možete pristupiti podacima s druge stranice pomoću ModalRoute.of i objekata postavki:
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
String data = ModalRoute.of(context).settings.arguments;
// Use the data here
}
}
Povratak na prethodnu stranicu
Za povratak na prethodnu stranicu možete upotrijebiti pop metodu Navigator. Ovo će zatvoriti trenutnu stranicu i vratiti se na prethodnu stranicu u nizu.
Primjer:
// Go back to the previous page
Navigator.pop(context);
Zaključak
Navigator u Flutteru vam omogućuje upravljanje centraliziranim stanjem i jednostavno kretanje između stranica. Korištenjem Navigator možete izraditi aplikacije s jasnom arhitekturom i pružiti bolje korisničko iskustvo pri kretanju između zaslona.