LoginSignup
4
1

More than 3 years have passed since last update.

Navigation ComposeでActivityへ遷移させる

Posted at

Navigation Compose で Activity への遷移をするにはどうすればいいのか調べたのでそれについて書いていこうと思います。
Navigation Compose については以前記事を書いたのでそちらをみてください。

⚠️ここでの Navigation Compose のバージョンは 1.0.0-alpha02 を使用しているので、Stable になるまでに破壊的な変更が入る可能性もあります

Navigation Compose に Activity の定義を追加

val navController = rememberNavController()
NavHost(navController = navController, startDestination = "home") {
    composable(route = "home") {
        HomeScreen(...)
    }
    composable(route = "settings") {
        SettingsScreen(...)
    }

    activity(id = R.id.nav_oss_licenses) {
        activityClass = OssLicensesMenuActivity::class
    }
}

今回は OSS Licenses Gradle PluginOssLicensesMenuActivity 遷移を定義します。
id は xml に定義しておき、NavGraphBuilderactivity() で遷移先の Activity を定義します。

遷移させる

Button(
    onClick = {
        navController.navigate(R.id.nav_oss_licenses)
    }
) {
    Text(text = "Licenses")
}

遷移させるには NavController#navigate に定義したときの id を渡すだけで遷移できます。

  
  
Navigation は Kotlin DSL で定義することができ、Navigation Compose でもその方法が使えるので、Activity の遷移も Navigation Compose で行えました。
Navigation を Kotlin DSL で定義するのは公式のドキュメントがあるので参考にしてみてください。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1