Junior — Middle
Navigatior 2.0'nın kavramı ve temel özelliklerini açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Flutter'da Navigator 2.0, geleneksel Navigator 1.0 ile karşılaştırıldığında yönlendirme ve gezinme durumu üzerinde daha fazla kontrol sağlayan yeni bir gezinme sistemidir.
Navigator 2.0'ın temel özellikleri:
- Bildirimsel yaklaşım: push/pop metodlarını çağırmak yerine, şu anki gezinme durumunu bir sayfa listesi aracılığıyla tanımlarsınız.
- URL ve derin bağlantı desteği: gezinme durumunu URL ile senkronize edebilirsiniz, bu web uygulamaları için önemlidir.
- Esneklik: karmaşık gezinme senaryolarını, örneğin iç içe geçmiş gezinme yığınlarını uygulamaya olanak tanır.
- RouterDelegate ve RouteInformationParser: gezinmeyi yönetmek ve URL'leri analiz etmek için anahtar sınıflar.
Navigator 2.0'ın basitleştirilmiş kullanım örneği:
class MyRouterDelegate extends RouterDelegate<MyRoutePath> with ChangeNotifier, PopNavigatorRouterDelegateMixin<MyRoutePath> {
final GlobalKey<NavigatorState> navigatorKey;
MyRouterDelegate() : navigatorKey = GlobalKey<NavigatorState>();
MyRoutePath _currentPath;
@override
Widget build(BuildContext context) {
return Navigator(
key: navigatorKey,
pages: [
MaterialPage(child: HomeScreen()),
if (_currentPath.isDetailsPage) MaterialPage(child: DetailsScreen()),
],
onPopPage: (route, result) {
if (!route.didPop(result)) return false;
_currentPath = MyRoutePath.home();
notifyListeners();
return true;
},
);
}
@override
Future<void> setNewRoutePath(MyRoutePath path) async {
_currentPath = path;
}
}
Bu şekilde, Navigator 2.0 gezinmeyi daha iyi kontrol etmenize ve bunu tarayıcı URL'si gibi dış kaynaklarla entegre etmenize olanak tanır.