【发布时间】:2020-10-05 18:44:44
【问题描述】:
我正在使用导航组件,并希望将抽屉布局与每个片段中的工具栏连接起来,而不是活动。
我尝试了在 onViewCreated() 上调用的 answer,但从活动引用的任何视图都是空的。我猜这是因为在从 Activity 的 onCreate 方法返回之前,fragment 在布局中被膨胀了。
我使用此扩展函数将抽屉与片段的工具栏连接起来,我尝试从 onCreateView() 和 onViewCreated() 调用它,但没有成功,并且活动的抽屉布局始终为空。我只在从 onStart() 调用它时才工作,但我认为这不是正确的方法:
private fun AppCompatActivity.setToolbar() {
setSupportActionBar(binding.toolbar)
setHasOptionsMenu(true)
val drawer = findViewById<DrawerLayout>(R.id.drawer)
binding.toolbar.setupWithNavController(findNavController(), drawer)
}
调用这个函数的正确位置是什么?
【问题讨论】:
-
你在使用
<fragment>标签吗?这个答案在使用FragmentContainerView时非常有效,这是添加NavHostFragment的推荐方式。 -
@ianhanniballake 原来这是问题所在。我以前更喜欢
fragment而不是FragmentContainerView,因为它显示了预览。你能解释一下为什么fragment不起作用吗?
标签: android navigation-drawer android-architecture-navigation android-navigation android-navigation-graph