我是Jetpack撰写的新手,我很难理解如何将导航库与撰写相结合。我已经成功地实现了底层导航,但是现在还在努力访问子组件中的.navigate(“路由”)方法。我是否应该从可合成的navController中作为一个参数传递NavHost?这是我的代码,让事情更清楚。
下面是我的HomeScreen.kt @Composable,它调用rememberNavController()方法以及可组合的NavHost(),如下所示.
@Composable
fun HomeScreen() {
val navController = rememberNavController()
...
Scaffold(
...
) {
NavHost(navController, startDestination = "route") {
composable("route") { Settings(navController) }
}
}
在这里,您可以看到,我将navController作为param传递给可组合的设置。我不确定这是否正确。现在,如果可能的话,我希望最终从可组合的设置中访问navController.navigate("route")方法,类似于下面的内容。
@Composable
fun Settings(navController: NavHostController) {
...
Button(onClick = {navController.navigate("route")}) {
Text(text = "button text")
}
...
}
不幸的是,我无法访问.navigate方法,因为它说“不能用提供的参数调用以下任何函数”。谢谢你的时间和帮助!
发布于 2020-11-25 13:32:21
navigate("route")
方法是一种扩展方法。因此,您必须显式导入它:
import androidx.navigation.compose.navigate
https://stackoverflow.com/questions/65012419
复制相似问题