Sobes.tech
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.