Gezinme denetleyicisi, gezinmedeki temel kavramlardan biridir. Navigasyon grafiğini tutar ve uygulamanızın grafikteki hedefler arasında hareket etmesine olanak tanıyan yöntemleri kullanıma sunar.
Navigation bileşenini kullanırken NavController sınıfını kullanarak bir gezinme denetleyicisi oluşturursunuz. NavController, merkezi gezinme API'sidir. Kullanıcının ziyaret ettiği hedefleri izler ve kullanıcıların hedefler arasında geçiş yapmasına olanak tanır. Bu kılavuzda, uygulamanızda nasıl NavController oluşturacağınız gösterilmektedir.
NavController uygulamanıza gezinme grafiği ekleme hakkında bilgi edinmek için Gezinme grafiğinizi tasarlama başlıklı makaleyi inceleyin. NavController, grafiğindeki hedeflere gitmek için birkaç farklı yol sunar. Daha fazla bilgi için Hedefe gitme başlıklı makaleyi inceleyin.
Oluştur
Jetpack Compose kullanırken NavController oluşturmak için rememberNavController() işlevini çağırın:
val navController = rememberNavController()
Birleştirilebilir hiyerarşinizde NavController yüksekliği oluşturmanız gerekir. Bu değer, referans vermesi gereken tüm composable'ların bunu yapabilmesi için yeterince yüksek olmalıdır.
Bu sayede, ekranlarınızın dışındaki composable'ları güncellemek için NavController'yı tek doğruluk kaynağı olarak kullanabilirsiniz. Bu, durum yükseltme ilkelerine uygundur.
Görüntüleme sayısı
Views kullanıcı arayüzü çerçevesini kullanıyorsanız bağlama bağlı olarak aşağıdaki yöntemlerden birini kullanarak NavController'ınızı alabilirsiniz:
Kotlin:
Java:
NavHostFragment.findNavController(Fragment)Navigation.findNavController(Activity, @IdRes int viewId)Navigation.findNavController(View)
Genellikle önce NavHostFragment alırsınız, ardından parçadan NavController öğesini alırsınız. Aşağıdaki snippet bu durumu gösterir:
Kotlin
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
Java
NavHostFragment navHostFragment =
(NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();
Daha fazla bilgi
- Navigasyon grafiğinizi tasarlama: Uygulamanızdaki tüm hedefleri içeren bir grafiği
NavController'nize nasıl ekleyeceğinizi ayrıntılı olarak açıklayan bir kılavuz. - Hedefe gitme: Gezinme grafiğinizdeki hedefler arasında hareket etmek için
NavControllersimgesinin nasıl kullanılacağını ayrıntılı olarak açıklayan bir kılavuz.