Flutter’da “back stack” kavramı, genellikle navigasyon yönetimiyle ilişkilendirilen bir terimdir. Back stack, kullanıcının uygulama içindeki ekranları geçerken geçmişte ziyaret ettiği ekranları tutan bir veri yapısıdır. Bu, geri düğmesine basıldığında veya belirli bir geri dönme işlemi gerçekleştirildiğinde geçmişteki ekranlara geri dönmek için kullanılır.
Flutter’da back stack’i yönetmek için genellikle Navigator
sınıfı ve PageRoute
sınıfları kullanılır. Navigator
sınıfı, ekranların yönetimi ve geçişleri için kullanılırken, PageRoute
sınıfları, farklı ekranların tanımlandığı ve yönlendirildiği sınıflardır.
MaterialApp(
home: Navigator(
onGenerateRoute: (settings) {
return MaterialPageRoute(
builder: (context) => HomeScreen(),
);
},
),
);
Yukarıdaki örnekte, MaterialApp
widget’ı içinde bir Navigator
widget’ı yer alıyor. Navigator
widget’ı, onGenerateRoute
parametresini kullanarak ekran geçişlerini yönetir. Bu örnekte, MaterialPageRoute
kullanarak HomeScreen
widget’ını geçiş ekranı olarak tanımlıyoruz.
// Mevcut ekranı yeni bir ekranla değiştirmek için:
Navigator.push(
context,
MaterialPageRoute(builder: (context) => NewScreen()),
);
// Geri düğmesine basıldığında önceki ekrana dönmek için:
Navigator.pop(context);
Yukarıdaki örnekte, Navigator.push()
metodu ile mevcut ekrana yeni bir ekran ekliyoruz. Bu, back stack’e bir ekran ekler ve kullanıcı yeni ekrana geçer. Navigator.pop()
metodu ise geri düğmesine basıldığında veya belirli bir geri dönme işlemi yapıldığında önceki ekrana geri dönmek için kullanılır. Bu, back stack’te bir öğe çıkarır ve kullanıcı önceki ekrana döner.
Bu örnek, temel olarak back stack kullanımını göstermektedir. Elbette, daha karmaşık navigasyon senaryoları için farklı yöntemler ve paketler de kullanılabilir. Ancak, temel navigasyon yönetimi için Flutter’ın sağladığı Navigator
sınıfı ve PageRoute
sınıfları oldukça yeterlidir.
Bu Yazıya Tepkin Ne Oldu ?
YORUMLAR