Android Jetpack'teki Navigation bileşeni, Jetpack Compose uygulamaları için destek sağlar. Navigation bileşeninin altyapısından ve özelliklerinden yararlanırken composable'lar arasında gezinebilirsiniz.
Bu sayfada, Wear OS için Compose'daki Jetpack Navigation ile ilgili farklılıklar açıklanmaktadır.
Kurulum
Uygulama modülünüzün build.gradle dosyasında aşağıdaki bağımlılığı kullanın:
Kotlin
dependencies { def wear_compose_version = "1.5.1" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
Wear OS'e özel alternatif uygulamalar sağladığı için androidx.navigation:navigation-compose
yapıtı yerine kullanılır.
Gezinme denetleyicisi, ana makine ve grafik oluşturma
Wear OS için Compose ile gezinme, Wear OS dışındaki uygulamalarda gereken üç bileşeni (gezinme denetleyicisi, ana makine ve grafik) gerektirir.
Wear OS uygulamaları için uygun bir NavController
uygulaması olan WearNavigator
örneği oluşturmak üzere
rememberSwipeDismissableNavController()
kullanın:
Kotlin
val navController = rememberSwipeDismissableNavController()
NavController
, Compose uygulamalarında gezinmek için kullanılan birincil API'dir. Bu işlev, Wear OS'te SwipeDismissableNavHost
olan gezinme ana makinesindeki composable'lar arasında gezinmeyi kontrol eder.
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { // TODO: build navigation graph }
NavHost
composable'a benzer şekilde, gezinme denetleyicisine, başlangıç hedefinin rotasına ve burada sondaki lambda olarak gösterilen gezinme grafiği oluşturucusuna referans alır.
Başlangıç hedefi, gezinme grafiği oluşturucuda, gezinme denetleyicisiyle gezinilebilmesi gereken diğer tüm hedeflerle birlikte sağlanmalıdır.
Wear OS uygulamanızda, saat, kaydırma/konum göstergesi ve sayfa göstergesi gibi üst düzey bileşenleri desteklemek içinSwipeDismissableNavHost
öğesini
AppScaffold
içeriği olarak beyan edin.
Ekran düzeyinde SwipeDismissableNavHost
ve ScreenScaffold
üzerinde bir AppScaffold
nesnesi kullanarak ekrana varsayılan olarak bir TimeText
nesnesi ekleyin ve ekranlar arasında gezinirken nesnenin doğru şekilde animasyon oluşturmasını sağlayın.
Ayrıca, ScreenScaffold
kaydırılabilir içerik için PositionIndicator
ekler.
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 Navigation hakkında daha fazla bilgi edinmek için Compose ile gezinme başlıklı makaleyi inceleyin veya Jetpack Compose Navigation kod laboratuvarına katılın.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir.
- Jetpack Navigation'ı Navigation Compose'a taşıma
- Compose ile gezinme
- Oluştur ile ekranlar arasında gezinme