În Flutter, Navigator este un instrument puternic pentru gestionarea stării centralizate și a navigării în pagină în aplicația dvs. Vă permite să creați aplicații cu arhitectură clară și navigare ușoară între ecrane.
Definire Routes
Pentru a începe să utilizați Navigator, trebuie să definiți routes în aplicația dvs. Routes sunt ecrane individuale la care utilizatorii pot naviga. Puteți defini routes folosind MaterialApp și puteți furniza o colecție de routes, unde fiecare route este mapat la un Widget.
Exemplu:
MaterialApp(
initialRoute: '/',
routes: {
'/':(context) => HomePage(),
'/second':(context) => SecondPage(),
},
)
În exemplul de mai sus, am definit două routes: '/'(home page)
și '/second'(second page
). Puteți adăuga câte routes este necesar.
Navigarea între pagini
Pentru a naviga între pagini, puteți folosi Navigator metodele lui. O metodă comună este pushNamed, care vă permite să navigați la o altă pagină, furnizând numele acelei route.
Exemplu:
// Navigate to the second page
Navigator.pushNamed(context, '/second');
În plus, puteți utiliza metoda push pentru a naviga la alta route și a comuta între pagini.
Trecerea datelor între pagini
Puteți trece date între pagini folosind metoda pushNamed cu parametrul arguments.
Exemplu:
Navigator.pushNamed(
context,
'/second',
arguments: 'Data from the home page',
);
Apoi, puteți accesa datele din a doua pagină utilizând obiectele ModalRoute.of și setări:
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
String data = ModalRoute.of(context).settings.arguments;
// Use the data here
}
}
Revenind la pagina anterioară
Pentru a reveni la pagina anterioară, puteți folosi metoda pop a Navigator. Aceasta va închide pagina curentă și va reveni la pagina anterioară din stivă.
Exemplu:
// Go back to the previous page
Navigator.pop(context);
Concluzie
Navigator în Flutter vă permite să gestionați starea centralizată și să navigați între pagini cu ușurință. Folosind Navigator, puteți crea aplicații cu arhitectură clară și puteți oferi o experiență mai bună pentru utilizator atunci când navigați între ecrane.