NavController.navigate是怎么切换fragment的
时间: 2024-05-11 21:18:17 浏览: 86
NavController.navigate() 是通过 Navigation 组件实现 Fragment 之间的切换。
具体来说,NavController.navigate() 方法需要传入一个 Action 对象,该对象描述了从当前 Fragment 到目标 Fragment 的导航路径。
在 Action 对象中,需要指定目标 Fragment 的 ID 或其它唯一标识符,以及导航时需要传递给目标 Fragment 的参数(如果有的话)。
当调用 NavController.navigate() 方法时,Navigation 组件会根据 Action 对象中的信息自动查找目标 Fragment 并创建它,然后将当前 Fragment 替换为目标 Fragment。这样就完成了 Fragment 的切换。
需要注意的是,NavController.navigate() 方法只能在 Fragment 中调用,且需要先获取到 NavController 对象。例如:
```
val navController = findNavController()
navController.navigate(R.id.action_my_fragment_to_target_fragment, bundleOf("param" to "value"))
```
其中,`R.id.action_my_fragment_to_target_fragment` 是目标 Fragment 的唯一标识符,`bundleOf("param" to "value")` 则是传递给目标 Fragment 的参数。
阅读全文