Compose_15--导航1(页面跳转)

任何一个App不可能只展示一个页面,因此,页面跳转是一个必不可少的功能。在Compse中,使用Navigation组件在可组合项之间导航。如果需要使用Navigation组件,必须在应用模块的build.gradle文件中添加一下依赖:

dependencies {
    implementation "androidx.navigation:navigation-compose:2.4.0-beta02"
}

一、认识NavController

NavController是Navigation组件的有状态的中心API,组成应用屏幕的可组合项的返回堆栈和每个屏幕的状态都可用此API来跟踪记录。在组合项中,它是通过rememberController()方法来创建的。如下:

val navController = rememberNavController()

为了使所有的组合项都可以访问NavController,必须在组合项层次结构中的适当位置创建它。

二、创建并关联NavHost

每个NavController都必须与一个NavHost可组合项相关联。NavHost是NavController和导航图之间的桥梁,导航图是用来指定导航的可组合项目的地。在可组合项之间进行导航期间,NavHost的内容会自动进行重组。而导航图中的每个可组合项目的地都与一个路线相关联,该路线是字符串,指定了可组合项的路径。需要注意的是:每个目一条路径应对应一个可组合项,如果一条路径用于多个可组合项,则会导航到最后一个设定的可组合项。

创建并关联NavHost需要用到rememberNavController创建的NavController和导航图的起始目的地的路线,如下:

NavHost(navController = navController, startDestination = "home") {
    composable("home") { Home(/*...*/) }
    composable("goodsDetail") { GoodsDetail(/*...*/) }
    composable("createOrder") { CreateOrder(/*...*/) }
    /*...*/
}

三、导航(跳转)到可组合项

导航到某个可组合项,必须使用NavController.navigate("目的地路径参数")方法。

1.简单的跳转:直接使用NavController.navigate("目的地路径参数")

我们可以创建首页和商品详情组合,然后给它们指定路径

@Composable
fun compose_15() {
    // 创建NavController
    val navController = rememberNavController()
    // 用NavHost将NavController和导
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值