Компонент Navigation в Android Jetpack обеспечивает поддержку приложений Jetpack Compose. Вы можете перемещаться между составными приложениями, используя преимущества инфраструктуры и возможностей компонента Navigation.
На этой странице описаны различия в работе Jetpack Navigation в Compose для Wear OS.
Настраивать
Добавьте следующую зависимость в файл build.gradle вашего модуля приложения:
Котлин
dependencies { def wear_compose_version = "1.5.6" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
Этот код используется вместо артефакта androidx.navigation:navigation-compose поскольку он предоставляет альтернативные реализации, специфичные для Wear OS.
Создайте контроллер навигации, хост и граф.
Для навигации с помощью Compose для Wear OS требуются те же три компонента, что и в приложениях, не предназначенных для Wear OS: контроллер навигации, хост и граф.
Используйте rememberSwipeDismissableNavController() для создания экземпляра WearNavigator , реализации NavController , подходящей для приложений Wear OS:
val navController = rememberSwipeDismissableNavController()
NavController — это основной API, используемый для навигации в приложениях Compose. Он управляет навигацией между компонентами в хосте навигации, которым в Wear OS является SwipeDismissableNavHost .
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { // TODO: build navigation graph }
Подобно компоненту NavHost , он принимает ссылку на контроллер навигации, маршрут начального пункта назначения и построитель графа навигации, который здесь показан в виде завершающей лямбда-функции.
В конструкторе навигационного графа необходимо указать начальный пункт назначения, а также все остальные пункты назначения, которые должны быть доступны для навигации с помощью навигационного контроллера.
В вашем приложении для Wear OS объявитеSwipeDismissableNavHost как содержимое AppScaffold для поддержки компонентов верхнего уровня, таких как время, индикатор прокрутки или положения, а также индикатор страницы. Используйте объект AppScaffold выше SwipeDismissableNavHost и 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")!!) } } } } // Implementation of one of the screens in the navigation @Composable fun MessageDetail(id: String) { // .. Screen level content goes here val scrollState = rememberTransformingLazyColumnState() val padding = rememberResponsiveColumnPadding( first = ColumnItemType.BodyText ) ScreenScaffold( scrollState = scrollState, contentPadding = padding ) { scaffoldPaddingValues -> // Screen content goes here // ...
Чтобы узнать больше о навигации в Jetpack, см. раздел «Навигация с помощью Compose» или пройдите практическое занятие по программированию для навигации в Jetpack Compose .
{% verbatim %}Рекомендуем вам
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Перенести навигацию Jetpack в Navigation Compose.
- Навигация с помощью Compose
- Перемещайтесь между экранами с помощью функции «Составить».
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-12-17 UTC.