0
1

複雑なDeepLinkをJetpackComposeで実装するPart3

Last updated at Posted at 2023-11-26

はじめに

今回は、複雑なDeepLinkが来たときやDeepLinkの内容によってホーム画面で出しわけないといけない時の実装を紹介していきます

本文

本パートではMainViewで表示するための遷移用ネストナビゲーション部分を実装していきます。
ネストナビゲーションとは従来のNavGraphファイルをKotlinで書いたもので、基盤になるViewやBottomNavigation等のナビゲーションを一括で持っておく場所のことです。
startDestionationには最初に表示したいViewのユニークIDを、routeにはそのNavGraph用のユニークIDを設定します
各種IDはObject等で一箇所にまとめておくと便利です。

NestNavigation
fun NavGraphBuilder.hogeNavGraph(
    navController: NavHostController,
    navigateScreenType: NavigateScreenType
) {
    navigation(startDestination = BottomBarNav.home, route = DeepLinkNav.hogeRoot) {
        homeView(navController, navigateScreenType)
    }
}

fun NavGraphBuilder.fugaNavGraph(
    navController: NavHostController,
    navigateScreenType: NavigateScreenType
) {
    navigation(startDestination = BottomBarNav.home, route = DeepLinkNav.fugaRoot) {
        homeView(navController, navigateScreenType)
    }
}

fun NavGraphBuilder.homeNavGraph(
    navController: NavHostController,
    navigateScreenType: NavigateScreenType
) {
    navigation(startDestination = BottomBarNav.home, route = BottomBarNav.homeRoot) {
        homeView(navController, navigateScreenType)
        settingView(navController)
        exampleView(navController)
    }
}

最後に

今回は、DeepLinkの遷移部分を紹介してみました
次のパートは下記になります
https://qiita.com/ryuji_sato/items/b2c5c8586190e5b42c3a
どなたかのお役に立てれば幸いです

0
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
0
1