Jetpack ComposeアプリにNavHostを追加する
最終更新日:2022-05-09
Navigationを使ってJetpack Composeを使用するアプリに画面遷移機能を追加するには、まずNavHostを追加します。
アプリにNavHostを追加するには、次の2ステップを行います。
- NavControllerを作る
- Scaffoldの中でNavHostを作る
NavControllerを作る
アプリのルートとなるComposableの中で NavController
を作ります。再composeの際に情報が失われると困るので、 rememberNavController()
を使って作ります。
@Composable
fun MyApp() {
ComposeAppTheme {
val navController = rememberNavController()
...
}
}
Scaffoldの中でNavHostを作る
次に、 Scaffold
の中でNavHostを作ります。各画面に対応するComposableには文字列で名前をつけていきます。今回は最初の1画面のみなので main
にしておきます。
@Composable
fun MyApp() {
ComposeAppTheme {
val navController = rememberNavController()
Scaffold(
topBar = { MyTopAppBar() },
) {
NavHost(navController = navController, startDestination = "main") {
composable("main") {
MainScreen()
}
}
}
}
}
NavHost
の startDestination
で、最初にどの画面(Composable)が表示されるかを指定します。
NavHost
の {}
の中で、 composable(画面名)
を画面の数だけ作り、その中でどのComposableを表示させるかを指定します。