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()

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐