【发布时间】:2019-09-13 21:41:33
【问题描述】:
我有一个包含 NavHostFragment 的 BottomSheetDialogFragment,如下所示:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/add_feeling_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:defaultNavHost="true"
app:navGraph="@navigation/add_feeling_graph" />
</LinearLayout>
</layout>
当我尝试使用以下任一方法在其类中获取 NavController 时:
activity?.findNavController(R.id.add_feeling_nav_host_fragment)
view.findNavController()
第一个选项崩溃,因为它找不到 ID,而第二个确实找到了父导航控制器并使用它。
我为另一个 Fragment 设置了相同的设置,但它不是一个对话框,它可以完美运行。有什么想法可能是什么问题?谢谢
【问题讨论】:
-
你试过 fragment.findNavController() 了吗?
-
@Man 我做了,是的,没有区别
-
@PavSidhu 请向我们展示包含对话框片段的导航图
标签: android android-dialogfragment android-navigation android-architecture-navigation