Wear OS için Compose ile gezinme

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.