単純なコンポーザブル関数が用いられている2画面間の遷移(のようなもの)をする方法の一つです。
build.gradle(:app)に以下のような依存関係を追加してください。
build.gradle(:app)
// いろんなやつ
dependencies {
// いろんなやつ
implementation "androidx.navigation:navigation-compose:2.4.0-alpha09"
}
注意
compileSdkVersion が 30以下だと後の処理でエラーが出る可能性があります。
今、以下のような FirstScreen
と SecondScreen
を移動する場合を考えます。
@Composable
fun FirstScreen(navController: NavController){
Column {
Text(text = "1つ目の画面")
Button(onClick = { navController.navigate("secondScreen") }) {
Text(text = "次の画面へ")
}
}
}
@Composable
fun SecondScreen(){
LazyColumn {
items(10){
Text(text = "2つ目の画面")
}
}
}
次にsetContent
内で、
setContent {
val navController = rememberNavController()
NavHost(navController = navController, startDestination = "firstScreen"){
composable("firstScreen"){ FirstScreen(navController = navController)}
composable("secondScreen"){ SecondScreen()}
}
}