Компонент Navigation в Android Jetpack обеспечивает поддержку приложений Jetpack Compose. Вы можете перемещаться между компонуемыми объектами, используя инфраструктуру и функции компонента Navigation.
На этой странице описываются отличия от Jetpack Navigation в Compose для Wear OS.
Настраивать
Используйте следующую зависимость в файле build.gradle вашего модуля приложения:
Котлин
dependencies { def wear_compose_version = "1.4.1" 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 ) { // Screen content goes here
Чтобы узнать больше о Jetpack Navigation, ознакомьтесь с разделом Навигация с помощью Compose или пройдите лабораторную работу по коду Jetpack Compose Navigation .
{% дословно %}Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Перенести навигацию Jetpack в навигацию Compose
- Навигация с помощью Compose
- Перемещайтесь между экранами с помощью Compose
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-05-21 UTC.