:feature:depart:routeモジュールにnavigationディレクトリ(パッケージ)を追加し、直下にDepartRouteNavGraph.ktを作成します。
package jp.co.progress_llc.portal.feature.depart.route.navigation
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import jp.co.progress_llc.portal.feature.depart.route.presentation.DepartRouteScreen
const val DEPART_ROUTE = "depart_route"
fun NavGraphBuilder.departRouteNavGraph() {
composable(DEPART_ROUTE) {
DepartRouteScreen()
}
}
:feature:depart:routeモジュールにdiディレクトリ(パッケージ)を追加し、直下にDepartRouteNavGraphModule.ktを作成します。
package jp.co.progress_llc.portal.feature.depart.route.di
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import dagger.multibindings.IntoSet
import androidx.navigation.NavGraphBuilder
import jp.co.progress_llc.portal.feature.depart.route.navigation.departRouteNavGraph
@Module
@InstallIn(SingletonComponent::class)
object DepartRouteNavGraphModule {
@Provides
@IntoSet
fun provideDepartRouteNavGraph(): NavGraphBuilder.() -> Unit = {
departRouteNavGraph()
}
}
経路一覧編集画面は、発車予定表示機能のホーム画面から遷移しますので、:feature:depart:homeモジュールに経路一覧編集画面への依存を追記します。
:
dependencies {
:
implementation(project(":core:navigation"))
implementation(project(":feature:depart:route"))
:
}
追記後、『Sync Now』で内容をプロジェクトに反映させます。
発車予定表示機能のホーム画面に経路一覧編集画面への遷移を追記します。
:
import androidx.navigation.NavController
import androidx.navigation.compose.rememberNavController
:
import jp.co.progress_llc.portal.core.navigation.LocalNavController
import jp.co.progress_llc.portal.feature.depart.route.navigation.DEPART_ROUTE
:
fun DepartHomeScreen() {
fun DepartHomeScreen(
navController: NavController = LocalNavController.current
) {
:
CustomExposedDropdownMenuBox(
:
onAdditionalItemClick = { }
onAdditionalItemClick = { navController.navigate(DEPART_ROUTE) }
:
fun DepartHomeScreenPreview() {
AppTheme {
DepartHomeScreen()
DepartHomeScreen(navController = rememberNavController())
エミュレーターでアプリケーションを実行して、画面遷移で発車予定表示機能の経路一覧編集画面が表示されることを確認します。