Hel*_*oCW 6 android android-jetpack-compose
在我在 Android Studio 项目中使用导航图之前,就像文章中所说的那样。
我使用位于文件夹中的 xml 文件res\navigation
来包含我所有不同的目的地。
目前,我正在通过文章学习Jetpack Compose Navigation。
代码A来自上面文章提到的官方示例项目。
Jetpack Compose Navigation 似乎使用代码 A 和其他代码进行导航,并且我在res\navigation
文件夹中找不到任何 XML 文件。
1:当我使用 Jetpack Compose Navigation 时,导航图是否会被废弃?
res\navigation
2:当我使用Jetpack Compose 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)
}
...
}
}
Run Code Online (Sandbox Code Playgroud)
ian*_*ake 10
导航始终具有三种构建NavGraph
对象的方法:
通过使用NavGraph
构造函数本身手动进行。虽然这是此处列出的所有其他方法的基础,但您并不意味着直接使用这些 API。
通过导航 XML构建图表。这是一种使用 Navigator Editor 工具和Safe Args 插件在编译时构建图形的方法。此方法仅支持使用 Fragment 进行导航。
使用导航 Kotlin DSL。这提供了一种在运行时使用Kotlin DSL以编程方式构建导航图的类型安全方法。此方法支持使用片段导航和导航撰写。
由于 Compose 是一种以编程方式构建 UI 的方式,因此 Navigation 仅支持构建图形的编程版本 - 通过 Kotlin DSL,这正是尾随 lambda 为NavHost
您提供的内容:它是相同的NavGraphBuilder
范围,允许您调用navigation(...) {}
来构建嵌套图表或composable
向图表添加新目标。
所有概念都是相同的,因为NavGraph
无论您实际如何构建图形,您构建的底层最终在运行时都是完全相同的对象集。
归档时间: |
|
查看次数: |
2226 次 |
最近记录: |