JetpackComposeにNavigationを入れました
そのやり方
・navigationの設定
activityとcomposableで飛ばし方が違う
https://stackoverflow.com/questions/72800451/starting-activity-using-compose-navigation
val navController = rememberNavController() val scope = rememberCoroutineScope() NavHost(navController = navController, startDestination = "path2") { composable("path2") { SampleScreen2() } activity(route = "activity") { activityClass = Activity::class } }
画面遷移
navController.navigate("path2")
themeの当て方
共通の部分がどこまでかによって親で囲う範囲が違うので注意
//themeが同じなら Theme { composable composable } //themeが別なら composable { Theme { } } composable { Theme { } }
・パラメーターの渡し方
渡す側
navController.navigate("path/aaaa")
受け取り側
composable("path/parameter") { backStackEntry -> SampleScreen( query = backStackEntry.arguments?.getString("parameter") ?: "", ) }
・戻り方
backstackのcomposableへの戻し方
https://engawapg.net/jetpack-compose/1393/screen-transition/#i-5
navController.navigateUp()
関連記事:
- Jetpack Compose Navigationでオブジェクトを渡して画面遷移する
- JetpackComposeでOverflow Menuの作り方
- JetpackComposeでNavigationを実装した