Hem yerleşik hem de güvenli API'leri kullanarak
gezinme grafiğidir. Bu API'ler, uygulamanızda Gezinme
Oluşturma veya Gezinme Kotlin DSL Navigation
2.8.0
itibarıyla kullanılabilirler.
Bu API'ler, Güvenli Bağımsız Değişkenler'in gezinme grafiklerine sağladığıyla eşdeğerdir geliştirmenizi sağlar.
Rotaları tanımlama
Compose'da tür güvenli rotaları kullanmak için önce seri hale getirilebilir yolları tanımlamanız gerekir sınıfları veya nesneleri gösterir.
- Nesne: Bağımsız değişkensiz rotalar için bir nesne kullanın.
- Sınıf: Bağımsız değişkenler içeren rotalar için bir sınıf veya veri sınıfı kullanın.
KClass<T>
: Sınıf gibi bağımsız değişkenleri iletmeniz gerekmiyorsa kullanın parametre içermeyen veya tüm parametrelerin varsayılan değerlere sahip olduğu bir sınıf- Örneğin:
Profile::class
- Örneğin:
Her iki durumda da nesne veya sınıf seri hale getirilebilir olmalıdır.
Örnek:
// Define a home route that doesn't take any arguments
@Serializable
object Home
// Define a profile route that takes an ID
@Serializable
data class Profile(val id: String)
Grafiğinizi oluşturun
Daha sonra, gezinme grafiğinizi tanımlamanız gerekir. composable()
'ı kullanma
işlevini kullanabilirsiniz.
NavHost(navController, startDestination = Home) {
composable<Home> {
HomeScreen(onNavigateToProfile = { id ->
navController.navigate(Profile(id))
})
}
composable<Profile> { backStackEntry ->
val profile: Profile = backStackEntry.toRoute()
ProfileScreen(profile.id)
}
}
Bu örnekte aşağıdakileri gözlemleyin:
composable()
, bir tür parametresi alır. Yani,composable<Profile>
- Hedef türünü tanımlamak, bir hedefi tanımlamak yerine
composable("profile")
itibarıylaroute
dize. - Rota sınıfı, her bir gezinme bağımsız değişkeninin türünü aşağıdaki gibi tanımlar:
val id: String
olduğundanNavArgument
öğesine gerek yoktur. toRoute()
uzantı yöntemi, profil rotası içinNavBackStackEntry
öğesindenProfile
nesne ve bağımsız değişkenlerdir.
Grafiğinizi genel olarak nasıl tasarlayacağınızla ilgili daha fazla bilgi için Tasarım Gezinme grafiği sayfanızda gösterilir.
Güvenli rota yazma bölümüne gidin
Son olarak, navigate()
kullanarak composable'ınıza gidebilirsiniz
fonksiyonunu çağırın:
navController.navigate(Profile(id = 123))
Bu işlem, kullanıcıyı composable<Profile>
hedefine yönlendirir
gezinme grafiğidir. id
gibi gezinme bağımsız değişkenleri,
NavBackStackEntry.toRoute
kullanarak Profile
yeniden oluşturma ve
özellikler.