Navigasyon

Gezinme, kullanıcıların uygulamanızdaki farklı içeriklere geçme, bu içeriklerden ayrılma ve içerik parçalarından geri dönüş yapma olanağı tanıyan etkileşimleri ifade eder.

Android Jetpack'in Navigasyon bileşeni, Gezinme kitaplığını, Safe Args Gradle eklentisini ve uygulamada gezinmeyi uygulamanıza yardımcı olacak araçları içerir. Gezinme bileşeni, basit düğme tıklamalarından uygulama çubukları ve gezinme çekmecesi gibi daha karmaşık kalıplara kadar çeşitli gezinme kullanım alanlarını yönetir.

Temel kavramlar

Aşağıdaki tabloda, gezinmedeki temel kavramlara ve bunları uygulamak için kullandığınız ana türlere genel bir bakış sunulmaktadır.

Konsept

Amaç

Tür

Düzenleyen

Geçerli gezinme hedefini içeren bir kullanıcı arayüzü öğesi. Yani, kullanıcı bir uygulamada gezinirken, uygulama esasen navigasyon ana makinesinde ve ana makinede hedefler değiştirir.

Grafik

Uygulama içindeki tüm gezinme hedeflerini ve bunların birbirine nasıl bağlanacağını tanımlayan bir veri yapısı.

NavGraph

Kumanda

Hedefler arasında navigasyonu yönetmek için merkezi koordinatör. Denetleyici; hedefler arasında gezinme, derin bağlantıları işleme, arka yığını yönetme ve daha pek çok şey için yöntemler sunar.

NavController

Hedef

Gezinme grafiğindeki bir düğüm. Kullanıcı bu düğüme gittiğinde, ana makine bu düğüme ait içeriği görüntüler.

NavDestination

Genellikle gezinme grafiği oluşturulurken oluşturulur.

Rota

Bir hedefi ve hedefin gerektirdiği tüm verileri benzersiz olarak tanımlar.

Rotaları kullanarak gezinebilirsiniz. Rotalar sizi istediğiniz yerlere götürür.

Serileştirilebilen tüm veri türleri.

Avantajlar ve özellikler

Gezinme bileşeni, aşağıdakiler de dahil olmak üzere daha pek çok avantaj ve özellik sunar:

  • Animasyonlar ve geçişler: Animasyonlar ve geçişler için standartlaştırılmış kaynaklar sağlar.
  • Derin bağlantı: Kullanıcıyı doğrudan bir hedefe götüren derin bağlantıları uygular ve işler.
  • Kullanıcı arayüzü kalıpları: Gezinme çekmeceleri ve alt gezinme gibi kalıpları minimum düzeyde ek çalışmayla destekler.
  • Tür güvenliği: Tür güvenliği ile hedefler arasında veri geçirme desteği içerir.
  • ViewModel desteği: Grafiğin hedefleri arasında kullanıcı arayüzü ile ilgili verileri paylaşmak için bir gezinme grafiğinin ViewModel kapsama alınmasını sağlar.
  • Parça işlemleri: Parça işlemleri tam olarak destekler ve yönetir.
  • Yedekleme ve yedekleme: Geri ve ileri işlemlerini varsayılan olarak doğru şekilde işler.

Ortamınızı ayarlama

Projenize gezinme desteğini dahil etmek için uygulamanızın build.gradle dosyasına aşağıdaki bağımlılıkları ekleyin:

Eski

dependencies {
  def nav_version = "2.8.0"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:$nav_version"

  // Views/Fragments Integration
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Feature module support for Fragments
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

}

Kotlin

dependencies {
  val nav_version = "2.8.0"

  // Jetpack Compose integration
  implementation("androidx.navigation:navigation-compose:$nav_version")

  // Views/Fragments integration
  implementation("androidx.navigation:navigation-fragment:$nav_version")
  implementation("androidx.navigation:navigation-ui:$nav_version")

  // Feature module support for Fragments
  implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")

  // Testing Navigation
  androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")

}

Projenize başka mimari bileşenleri ekleme hakkında bilgi için Projenize bileşen ekleme bölümüne bakın.

Sonraki adımlar

Gezinme bileşeniyle ilgili diğer belgeler ve kaynaklar için aşağıdaki kaynaklara bakın.

Ayrıntılı kılavuzlar

Gezinme ana makinesini ve NavController öğesini uygulama, bunların Compose ve diğer kullanıcı arayüzü çerçeveleriyle nasıl etkileşimde bulundukları hakkında ayrıntılı bilgi için aşağıdaki kılavuzlara bakın:

Codelab uygulamaları

Videolar

Numuneler