Navigator Widget
açıklama
Bir sayfayı ekrana çağırma yöntemleri:
1.İsimlendirilmemiş Sayfa Oluşturarak Gösterme: MaterialPageRoute({ builder, RouteSettings settings, maintainState, fullscreenDialog } ile builder e bir widget atayarak bu widgeti sayfa olarak ekrana basarız.
2.İsimlendirilmiş Sayafalari Gösterme: Material apın aparametrine yani routes’a sayfa/widget isimlerini yol olarak tamınlarız daha sonra bu isimlerile çağırırız
Örnek Rota tanımlama:
MaterialApp(
initialRoute: “/”, // varsayılan ilk açılacak ana sayfa ,
routes: {
/sayfabir’: (context) => new SayafaBir(),
‘/sayfaiki’ : (context) => new SayafaIki(),
‘/sayfauc’ : (context) => new SayafaUc(),
‘/sayfadort’ : (context) => new SayafaDort()
},
)
MaterialApp in bir parametresi olan routes ‘a, sayfa isimleri yani sayfa yolları ve bu yollara karşılık gelen sayfalar map şeklinde verilerek
Navigator.pushNamed() ın bu sayfa isimlerini kullanarak sayfayı ekarana basmasına olanak sağlanır.
Navigator.pushNamed(context, ‘sayafa yolu’); a basıldığında oluşturulan sayafa Stack değimiz yığında en üste yerleşir.
Bu demektir ki açılan sayfada Navigator.pop(contex)a tıkladığmızda yada appBarda ki geri tuşuna bastığımızda ana sayfaya değil de,
gezindiğimiz bir önceki sayfaya döneriz.Yani yığının altında kalan sayfaya döneriz.
Herhangi bir routes tanımlamadığımız durumlarda anasayfamız materialApp in home parametresine atanmış olan widget olmuş olur,
diğer bir değişle home a atanan widget stack yığınında en alttaki katman olarak, varsayılan uygulama açılış sayfamız olur.
Navigator mantığında da sayafalar yığın(stack) şeklinde saklanır. Geçmiş sayfalara ModalRoute ile ulaşılabilir.
Navigator widget’i nin push yöntemleri ekranı (stackte)yığının üstüne ekler. Doğal olarak, pop yöntemleri bu ekranı yığından kaldırır.
Rotası main.dart içinde isimlendirilerek tanımlanmış herhangi bir sayfayı ekrana basabiliriz.Yani yığının en üstüne iteriz.Daha sonra en son ziyaret edilen yani mevcut ekrandaki sayfadan
kurtulmak istediğimizde, pop yöntemlerini kullanarak Navigator’ın yığınından onu fırlatıp atarız ve bir altındaki sayfa ekrana hortlar :).
Not:Tüm push lar Future döndürür.
tüm poplar bool döndürür. popUntil hariç.