Flutter Navigator je výkonný nástroj pro správu centralizovaného stavu a navigace po stránkách ve vaší aplikaci. Umožňuje vám vytvářet aplikace s jasnou architekturou a snadnou navigací mezi obrazovkami.
Definování Routes
Chcete-li začít používat Navigator, musíte routes ve své aplikaci definovat. Routes jsou jednotlivé obrazovky, na které mohou uživatelé přejít. Můžete definovat routes pomocí MaterialApp a poskytnout kolekci routes, kde route je každý namapován na Widget.
Příklad:
MaterialApp(
initialRoute: '/',
routes: {
'/':(context) => HomePage(),
'/second':(context) => SecondPage(),
},
)
Ve výše uvedeném příkladu jsme definovali dvě routes: '/'(home page)
a '/second'(second page
). Můžete přidat tolik routes, kolik potřebujete.
Navigace mezi stránkami
Pro navigaci mezi stránkami můžete použít Navigator metody 's. Jednou z běžných metod je pushNamed, která vám umožňuje přejít na jinou stránku zadáním názvu této stránky route.
Příklad:
// Navigate to the second page
Navigator.pushNamed(context, '/second');
Navíc můžete použít metodu push k navigaci na jinou route a přepínání mezi stránkami.
Předávání dat mezi stránkami
Data mezi stránkami můžete předávat pomocí metody pushNamed s parametrem arguments.
Příklad:
Navigator.pushNamed(
context,
'/second',
arguments: 'Data from the home page',
);
Poté můžete přistupovat k datům z druhé stránky pomocí objektů ModalRoute.of a nastavení:
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
String data = ModalRoute.of(context).settings.arguments;
// Use the data here
}
}
Návrat na předchozí stránku
Chcete-li se vrátit na předchozí stránku, můžete použít metodu pop Navigator. Tím se zavře aktuální stránka a vrátí se na předchozí stránku v zásobníku.
Příklad:
// Go back to the previous page
Navigator.pop(context);
Závěr
Navigator ve Flutter vám umožňuje spravovat centralizovaný stav a snadno procházet mezi stránkami. Pomocí Navigator, můžete vytvářet aplikace s jasnou architekturou a poskytovat lepší uživatelské prostředí při procházení mezi obrazovkami.