Gezinme

Gezinme, kullanıcıların uygulamanızdaki farklı içerik parçaları arasında gezinmesine, bu içeriklere girmesine ve bu içeriklerden çıkmasına olanak tanıyan etkileşimleri ifade eder.

Android Jetpack'in Gezinme bileşeni, Gezinme kitaplığını, Güvenli Args Gradle eklentisini ve uygulama gezinmesini 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

Mevcut gezinme hedefini içeren bir kullanıcı arayüzü öğesi. Yani kullanıcı bir uygulamada gezinirken uygulama, esasen rotaları navigasyon ana makinesinin içinde ve dışında değiştirir.

Grafik

Uygulamadaki tüm gezinme hedeflerini ve bunların birbirleriyle nasıl bağlandığını tanımlayan bir veri yapısı.

NavGraph

Alan Kontrolcüsü

Hedefler arasında gezinmeyi yöneten merkezi koordinatör. Denetleyici, hedefler arasında gezinme, derin bağlantıları işleme, geri yığınını yönetme ve daha fazlası için yöntemler sunar.

NavController

Hedef

Gezinme grafiğindeki bir düğüm. Kullanıcı bu düğüme gittiğinde ana makine içeriğini gösterir.

NavDestination

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

Rota

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

Rotaları kullanarak gezinebilirsiniz. Rotalar sizi hedeflere götürür.

Serileştirilebilir herhangi bir veri türü.

Avantajlar ve özellikler

Gezinme bileşeni, aşağıdakiler de dahil olmak üzere başka avantajlar ve özellikler de 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 yönlendiren derin bağlantıları uygular ve işler.
  • Kullanıcı arayüzü kalıpları: Minimum ek çalışmayla gezinme çekmeceleri ve alt gezinme gibi kalıpları destekler.
  • Tür güvenliği: Tür güvenliği ile hedefler arasında veri aktarımı desteği içerir.
  • ViewModel desteği: Kullanıcı arayüzüyle ilgili verileri grafiğin hedefleri arasında paylaşmak için bir ViewModel'yi gezinme grafiğine kapsama alma olanağı sağlar.
  • Parça işlemleri: Parça işlemlerini tamamen destekler ve işler.
  • Geri ve yukarı: Geri ve yukarı işlemlerini varsayılan olarak doğru şekilde işler.

Ortamınızı ayarlama

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

Groovy

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21'
}
  
dependencies {
  def nav_version = "2.8.6"

  // 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"

  // JSON serialization library, works with the Kotlin serialization plugin.
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3"
}

Kotlin

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  kotlin("plugin.serialization") version "2.0.21"
}

dependencies {
  val nav_version = "2.8.6"

  // 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")

  // JSON serialization library, works with the Kotlin serialization plugin
  implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
}

Projenize başka mimari bileşenleri ekleme hakkında bilgi edinmek için Projenize bileşen ekleme başlıklı makaleyi inceleyin.

Sonraki adımlar

Gezinme bileşeniyle ilgili daha fazla doküman ve kaynak için aşağıdaki kaynaklara göz atın.

Ayrıntılı rehberler

Gezinme ana makinesinin ve NavController'ün nasıl uygulanacağı hakkında daha fazla bilginin yanı sıra bu öğelerin Compose ve diğer kullanıcı arayüzü çerçeveleriyle nasıl etkileşime geçtiği hakkında ayrıntılı bilgi için aşağıdaki kılavuzları inceleyin:

Codelab uygulamaları

Videolar

Örnekler