はじめに
今回は、複雑な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
どなたかのお役に立てれば幸いです