Dmi*_*tri 15 android kotlin android-jetpack android-jetpack-compose
在 Jetpack Compose 中,导航应该如何完成?所有(而且不是很多)示例(包括来自 Google 的官方示例)都使用密封类并加载新屏幕以观察当前屏幕的变化。这确实(有点)工作,但不提供导航后台堆栈,并且手机的后退按钮完全不知道,只是关闭应用程序而不是返回上一个屏幕。这是否应该以某种方式与来自 AndroidX 的导航组件融合——但它是基于 XML 的,而 Compose 就是要远离 XML?或者是否有一个全新的导航概念即将到来,可能类似于 SwiftUI(navigationlink 等)?这似乎是最大的障碍之一——因为没有导航,你只能拥有一个玩具应用程序。有人知道这里的路线图吗?
pRa*_*NaY 12
为 Compose 导航发布了新的 Jetpack 库。它仍处于 alpha 阶段。
在这个新库中,现在用户可以使用导航组件功能在不同的可组合物之间导航。
使用导航撰写:
dependencies {
def nav_compose_version = "1.0.0-alpha01"
implementation "androidx.navigation:navigation-compose:$nav_compose_version"
}
Run Code Online (Sandbox Code Playgroud)
例子:
第 1 步:NavController使用rememberNavController()可组合中的方法创建一个:链接:
val navController = rememberNavController()
Run Code Online (Sandbox Code Playgroud)
第 2 步:创建NavHost需要NavController先前创建的 viarememberNavController()和图形起始目的地的路线:Link。
NavHost(navController, startDestination = "profile") {
composable("profile") { Profile(...) }
composable("friendslist") { FriendsList(...) }
...
}
Run Code Online (Sandbox Code Playgroud)
第 3 步:导航到可组合使用navigate():
fun Profile(navController: NavController) {
...
Button(onClick = { navController.navigate("friends") }) {
Text(text = "Navigate next")
}
...
}
Run Code Online (Sandbox Code Playgroud)
检查更多https://developer.android.com/jetpack/compose/navigation
sag*_*uri 11
这是 Jetpack Compose 中的一种非官方导航方法。尝试一下,直到您从 Google android 开发人员那里得到官方消息。
组合路由器
https://github.com/zsoltk/compose-router
似乎他们正在远离 XML。
1.0.0-alpha 发布后发布的新官方示例,具有管理后台堆栈和导航的共享代码。此代码还不是库的一部分。
https://github.com/android/compose-samples/blob/master/Owl/app/src/main/java/com/example/owl/ui/utils/Navigation.kt https://github.com/android /compose-samples/blob/master/Jetsnack/app/src/main/java/com/example/jetsnack/ui/utils/Navigation.kt
| 归档时间: |
|
| 查看次数: |
7969 次 |
| 最近记录: |