Компонент навигации в Android Jetpack обеспечивает поддержку приложений Jetpack Compose. Вы можете перемещаться между составными объектами, используя преимущества инфраструктуры и функций компонента навигации.
На этой странице описаны различия с Jetpack Navigation в Compose for Wear OS.
Настраивать
Используйте следующую зависимость в файле build.gradle вашего модуля приложения:
Котлин
dependencies { def wear_compose_version = "1.4.0" 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
как содержимое Scaffold
для поддержки компонентов верхнего уровня, таких как время, индикатор прокрутки/положения и индикатор страницы. Используйте объект Horologies AppScaffold
над SwipeDismissableNavHost
и Horologies 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 .
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Перенос навигации Jetpack в Navigation Compose
- Навигация с помощью Compose
- Перемещайтесь между экранами с помощью Compose
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-11-19 UTC.