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