android - 我不明白我们在 Activitiy 中获取 navController 的方式
问题描述
我搜索了很多,大多数人使用这行代码在Activity中获取navController:
val navHostFragment = supportFragmentManager
.findFragmentById(R.id.fragmentContainerView_mainActivity)
as NavHostFragment
navController = navHostFragment.navController
我想知道,为什么我们不能只使用findViewById
Activity 的方法来获取 FragmentContainerView。
解决方案
如果您正在寻找的东西是FragmentContainerView
那么您当然可以使用findViewById
,但如果您想访问,NavController
那么您必须使用库公开的方法。
// from fragments
Fragment.findNavController()
// from views
View.findNavController()
// from activity
Activity.findNavController(viewId: Int)
// from NavHostFragment
navHostFragment.navController
推荐阅读
- python - 如何按数字顺序而不是基于 y 轴值绘制熊猫条形图的 x 轴
- c# - 从 SQL Server 加载数据时 C# WCF 服务随机崩溃
- javascript - i18next - 应用自定义格式
- javascript - 在普通 TypeScript 文件中导入 Vue 组件失败
- android-studio - 我在哪里可以找到 Activity_Main 的文本视图?
- python - 创建df列作为行的json
- c# - XML 反序列化为已知类型,其中一个元素的结构是可变的(在 SOAP 服务参考中)
- python - 使用 dask-jobqueue 时,SLURM 批处理文件仍需要 #SBATCH 调用资源分配吗?
- angular - 来自 Json 的 Angular 中的动态路由
- javascript - 使用 jQuery 通过 AJAX POST 传递数组