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" }
これは、Wear OS 固有の代替実装を実現するため、androidx.navigation:navigation-compose
アーティファクトの代わりに使用されます。
ナビゲーション コントローラ、ホスト、グラフを作成する
Wear OS 向け Compose を使用して移動するには、Wear OS 以外のアプリに必要な 3 つのコンポーネント(ナビゲーション コントローラ、ホスト、グラフ)が必要です。
rememberSwipeDismissableNavController()
を使用して WearNavigator
のインスタンスを作成します。これは、Wear OS アプリに適した NavController
の実装です。
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
コンポーザブルと同様に、ナビゲーション コントローラ、開始デスティネーションのルート、ここでは後置ラムダとして表示されるナビゲーション グラフのビルダーへの参照を受け取ります。
開始デスティネーションは、ナビゲーション コントローラを使用して移動する必要がある他のすべてのデスティネーションとともに、ナビゲーション グラフのビルダーで指定する必要があります。
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")!!) } }
Jetpack Navigation の詳細については、Compose を使用したナビゲーションを参照するか、Jetpack Compose のナビゲーションの Codelab を受講してください。
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- Jetpack Navigation を Navigation Compose に移行する
- Compose でのナビゲーション
- Compose で画面間を移動する