Android Jetpack'teki Gezinme bileşeni, Jetpack Compose uygulamaları için destek sağlar. Gezinme bileşeninin altyapısından ve özelliklerinden faydalanırken, besteler arasında gezinebilirsiniz.
Bu sayfada, Wear OS için Compose'da Jetpack Gezinme ile ilgili farklılıklar açıklanmaktadır.
Kurulum
Uygulama modülünüzün build.gradle dosyasında aşağıdaki bağımlılığı kullanın:
Kotlin
dependencies { def wear_compose_version = "1.3.0" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
Bu, Wear OS'e özgü alternatif uygulamalar sağladığı için androidx.navigation:navigation-compose
yapısının yerine kullanılır.
Gezinme denetleyicisi, ana makine ve grafik oluşturma
Wear OS için Compose ile gezinmek, Wear OS dışı uygulamalarda gereken üç bileşeni gerektirir: gezinme denetleyicisi, ana makine ve grafik.
Wear OS uygulamalarına uygun bir NavController
uygulaması olan WearNavigator
örneğini oluşturmak için rememberSwipeDismissableNavController()
kodunu kullanın:
Kotlin
val navController = rememberSwipeDismissableNavController()
NavController
, Compose uygulamalarında gezinmek için kullanılan birincil API'dir. Wear OS'te SwipeDismissableNavHost
olan gezinme ana makinesindeki besteler arasında gezinmeyi kontrol eder.
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { // TODO: build navigation graph }
NavHost
derlenebilir öğesinde olduğu gibi, gezinme denetleyicisine, başlangıç hedefinin rotasına ve burada izleyen lambda olarak gösterilen gezinme grafiğinin oluşturucusuna referans verir.
Başlangıç hedefi, gezinme denetleyicisiyle gidilmesi gereken diğer tüm hedeflerle birlikte gezinme grafiği oluşturucuda sağlanmalıdır.
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { composable("message_list") { MessageList(onMessageClick = { id -> navController.navigate("message_detail/$id") }) } composable("message_detail/{id}") { MessageDetail(id = it.arguments?.getString("id")!!) } }
Jetpack Navigasyon hakkında daha fazla bilgi edinmek için Compose ile gezinme bölümüne bakın veya Jetpack Compose Gezinme kodu laboratuvarına katılın.