我正在寻找将我的应用程序转换为单一的活动,按照谷歌的指导方针。(使用Kotlin)
比方说,我的活动中有一个FragmentContainerView1,没有工具栏或其他东西。这个视图用于在登录屏幕、注册和显示主片段之间导航。
在主片段内,我有另一个FragmentContainerView2,它应该根据主片段内的BottomNavigation视图来显示。
但是我在FragmentContainerView2中的碎片内有一些元素,需要在FragmentContainerView1中执行动作。
我该如何实现呢?
图片:这里mainFragment包含BottomNavigation,其中mainMenuFragment是一个目标,它需要在FragmentContainerView1中执行操作。 我如何获得BottomNavigation内部导航控制器的引用?
编辑1: navController=Navigation.findNavController(view.findViewById(R.id.fragmentContainer))
没有用,还是返回相同的外部导航控制器。
不是一个完整的解决方案,但我发现的答案是保持一个容器作为一个和其他作为fragmentContainerView。
并得到内部导航控制器使用。
innerNavController= (activity as AppCompatActivity).findNavController(R.id.innerFragmentContainer)
只适用于特定的命令和其中一个容器是...
另外,在得到innerNavController后,任何类型的调用与 findNavController()
给出了内部导航控制器。要获得外导航控制器,请使用。
outerNavController = (activity as AppCompatActivity).findNavController(R.id.outerFragmentContainer)