使用Navigation创建并切换Fragment

0.依赖库

  id 'androidx.navigation.safeargs' version '2.6.0' apply false 

  id 'androidx.navigation.safeargs.kotlin'//navigation导航

1.创建具有导航能力的Fragment

1.1 在res文件夹中创建resource File

1.2  选择 Navigation类,创建

1.3 创建Navigation File

1.4 点击此处 创建带有导航能力的 Fragment

1.5 任意点击一个Fragment_A 拖动到 Fragment_B上,自动创建一个箭头,即 导航 action 

1.6 管理堆栈信息

2. 使用Navigation 导航

 2.1 在 Fragment中

直接 findNavController().navigation(传入一个action)

或者 在View中 findNavController.navigation

注意当伴随着数据传输时,调用这个Fragment名+FragmentDirections.action名字(数据)

findNavController().navigate()
        
        binding.textView.setOnClickListener {
            val action = DrawFragmentDirections.actionDrawFragmentToHomeFragment(User("jack",12))
            findNavController().navigate(action)
        }

 2.2 在Activity中

先需要找到xml里面创建的NavHostFragment,将其再强转成NavHostFragment,再调用navController.navigate()方法 【注意:这里的navcontroller不用创建类,即不用+()】

 val navHostFragment = supportFragmentManager.findFragmentById(R.id.fragmentContainerView) as NavHostFragment
         navHostFragment.navController.navigate()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值