Wear OS용 Compose를 사용한 탐색

Android Jetpack의 Navigation 구성요소는 Jetpack Compose 애플리케이션을 지원합니다. Navigation 구성요소의 인프라와 기능을 활용하면서 컴포저블 간에 이동할 수 있습니다.

이 페이지에서는 Wear OS용 Compose의 Jetpack Navigation과의 차이점을 설명합니다.

설정

앱 모듈의 build.gradle 파일에서 다음 종속 항목을 사용합니다.

Kotlin

dependencies {
    def wear_compose_version = "1.4.0"
    implementation "androidx.wear.compose:compose-navigation:$wear_compose_version"
}

이는 androidx.navigation:navigation-compose 아티팩트 대신 사용됩니다. Wear OS와 관련된 대체 구현을 제공하기 때문입니다.

탐색 컨트롤러, 호스트, 그래프 만들기

Wear OS용 Compose로 탐색하려면 Wear OS가 아닌 앱에서 필요한 동일한 세 가지 구성요소인 탐색 컨트롤러, 호스트, 그래프가 필요합니다.

rememberSwipeDismissableNavController()를 사용하여 Wear OS 애플리케이션에 적합한 NavController의 구현인 WearNavigator의 인스턴스를 만듭니다.

Kotlin

val navController = rememberSwipeDismissableNavController()

NavController는 Compose 애플리케이션에서 탐색하는 데 사용되는 기본 API입니다. Wear OS에서 SwipeDismissableNavHost인 탐색 호스트의 컴포저블 간 탐색을 제어합니다.

Kotlin

val navController = rememberSwipeDismissableNavController()
SwipeDismissableNavHost(
    navController = navController,
    startDestination = "message_list"
) {
    // TODO: build navigation graph
}

NavHost 컴포저블과 마찬가지로 탐색 컨트롤러, 시작 대상의 경로, 여기서 후행 람다로 표시되는 탐색 그래프의 빌더를 참조합니다.

시작 대상은 탐색 컨트롤러로 탐색할 수 있어야 하는 다른 모든 대상과 함께 탐색 그래프 빌더에 제공되어야 합니다.

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 Navigation에 관한 자세한 내용은 Compose로 탐색을 참고하거나 Jetpack Compose Navigation Codelab을 진행하세요.