【发布时间】:2021-11-03 14:11:05
【问题描述】:
在我的 Android Studio 项目中使用导航图之前,就像 article 所说的那样。
我使用位于 res\navigation 文件夹中的 xml 文件来包含我所有不同的目的地。
目前我正在通过article学习Jetpack Compose Navigation。
代码A来自上篇文章中提到的官方示例project。
Jetpack Compose Navigation 好像使用 Code A 和其他代码进行导航,我在res\navigation 文件夹中找不到任何 XML 文件。
1:当我使用 Jetpack Compose Navigation 时,导航图是否已过时?
2:当我使用 Jetpack Compose Navigation 时,是否需要再次使用位于 res\navigation 文件夹中的导航图?
代码 A
@Composable
fun RallyNavHost(navController: NavHostController, modifier: Modifier = Modifier) {
NavHost(
navController = navController,
startDestination = Overview.name,
modifier = modifier
) {
composable(Overview.name) {
OverviewBody(
onClickSeeAllAccounts = { navController.navigate(Accounts.name) },
onClickSeeAllBills = { navController.navigate(Bills.name) },
onAccountClick = { name ->
navigateToSingleAccount(navController, name)
},
)
}
composable(Accounts.name) {
AccountsBody(accounts = UserData.accounts) { name ->
navigateToSingleAccount(navController = navController, accountName = name)
}
}
composable(Bills.name) {
BillsBody(bills = UserData.bills)
}
...
}
}
【问题讨论】:
-
1.- 如果您仍然在视图系统中使用导航,这并不是严格意义上的弃用,但如果您计划迁移以使用 jetpack compose + 导航,则范式会发生变化,因为现在您需要使用一个 NavHostController 以到达正确的撰写目的地。
-
2.- 不,您使用 NavHost + NavHostController 来达到正确的可组合功能。
-
这段代码可能对你有帮助github.com/orbitalsonic/…
标签: android android-jetpack-compose