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ı. |
|
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. |
|
Hedef |
Gezinme grafiğindeki bir düğüm. Kullanıcı bu düğüme gittiğinde ana makine içeriğini gösterir. |
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:
- Gezinme denetleyicisi oluşturma:
NavController
oluşturma hakkında bilgi verir. - Gezinme grafiğinizi oluşturma: Gezinme ana makinesinin ve gezinme grafiğinin nasıl oluşturulacağıyla ilgili ayrıntılar.
- Bir hedefe gitme: Grafiğinizdeki hedefler arasında gezinmek için
NavController
simgesinin nasıl kullanılacağını gösterir.
Codelab uygulamaları
- Jetpack Navigation hakkında bilgi edinin.
- Parçalar ve Gezinme Bileşeni
- Dinamik gezinme içeren uyarlanabilir bir uygulama oluşturma
Videolar
- Gezinme menüsünde gezinme
- Tek bir etkinliğe geçmeyle ilgili en iyi 10 uygulama
- Tek etkinlik: Neden, ne zaman ve nasıl? (Android Dev Summit 2018)
- Android Jetpack: Kullanıcı arayüzü gezinmesini gezinme denetleyicisiyle yönetme (Google I/O 2018)