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
컴포저블과 마찬가지로 탐색 컨트롤러, 시작 대상의 경로, 여기서 후행 람다로 표시되는 탐색 그래프의 빌더를 참조합니다.
시작 대상은 탐색 컨트롤러로 탐색할 수 있어야 하는 다른 모든 대상과 함께 탐색 그래프 빌더에 제공되어야 합니다.
Wear OS 앱에서 시간, 스크롤/위치 표시기, 페이지 표시기와 같은 최상위 구성요소를 지원하도록 SwipeDismissableNavHost
를 Scaffold
의 콘텐츠로 선언합니다.
화면 수준에서 SwipeDismissableNavHost
위에 있는 Horologist AppScaffold
객체를 사용하고 화면 수준에서 Horologist ScreenScaffold
를 사용하여 기본적으로 TimeText
객체를 화면에 추가하고 화면 간에 이동할 때 올바르게 애니메이션되도록 합니다.
또한 ScreenScaffold
는 스크롤해야 하는 콘텐츠를 위해 PositionIndicator
를 추가합니다.
AppScaffold { 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")!!) } } } // ... // .. Screen level content goes here val scrollState = rememberScrollState() ScreenScaffold(scrollState = scrollState) { // Screen content goes here
Jetpack Navigation에 관한 자세한 내용은 Compose로 탐색을 참고하거나 Jetpack Compose Navigation Codelab을 진행하세요.
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- Jetpack Navigation을 Navigation Compose로 이전
- Compose를 사용하여 탐색
- Compose를 사용하여 화면 간 이동