【发布时间】:2021-04-09 08:10:14
【问题描述】:
我有这个带有导航组件的选项卡式 UI 和处理选项卡的 BottomNavigationView。
我的用例涉及这些选项卡片段之一,以拥有自己的BottomNavigationView。
我不认为nested navigation graphs 对我有用,因为我需要有一个内部NavHostFragment 和第二个BottomNavigationView。
所以我在我希望托管我的内部导航图的片段中。它包含一个像这样的片段。
<androidx.fragment.app.FragmentContainerView
android:id="@+id/inner_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:defaultNavHost="true"
我需要一种方法来获取上述片段的导航控制器。
通常,当您进行活动时,您会使用您为片段提供的 id 从 supportFragmentManager 调用 findFragmentById。
val navHostFragment = supportFragmentManager.findFragmentById(R.id.outer_nav_host) as NavHostFragment
所以我尝试从我的内部片段中调用活动对象
requireActivity().supportFragmentManager.findFragmentById(R.id.inner_host_fragment)
但是 findFragmentById 返回 null。
【问题讨论】:
-
请注意,您应该始终使用
FragmentContainerView,特别是不要使用<fragment>标签,该标签在Fragment 1.2.0 中已被弃用。 -
@ianhanniballake 感谢您的提醒。我确实更改为
FragmentContainerView。虽然手头的案子没有多大帮助。 -
正确,这就是为什么它是评论,而不是答案:)
-
能否在github上分享示例代码
标签: android kotlin android-fragments android-architecture-navigation