📅  最后修改于: 2023-12-03 15:12:33.387000             🧑  作者: Mango
在 Android 开发中,使用 Navigation 组件时会出现 “错误膨胀类片段 NavHostFragment” 的错误。这个错误通常是由于导航图文件(navigation graph)没有正确设置,或者在布局文件中没有正确引用导航图文件。
这个错误通常发生在使用 Navigation 组件时,因为 Navigation 组件需要一个 NavHostFragment 胶囊来托管 Fragment,并进行 Fragment 切换。所以在布局文件中需要引用 NavHostFragment。
如果 NavHostFragment 没有正确设置,会导致错误的发生。
检查导航图文件,确保每个目的地(destination)都有对应的 ID,并且每个目的地都链接到其他目的地或操作(action)。
检查布局文件中引用的导航图文件是否正确,确保布局文件中使用的导航图文件和导航组件 ID 对应,并且布局文件中的 NavHostFragment 已正确设置:
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/my_nav_graph" />
其中,navGraph
属性是导航图文件的引用,defaultNavHost
属性用于确保当返回键按下时,会返回到上一个 Fragment。
检查是否添加了 Navigation 组件的依赖:
implementation "androidx.navigation:navigation-fragment-ktx:$version_navigation"
implementation "androidx.navigation:navigation-ui-ktx:$version_navigation"
其中,version_navigation
是 Navigation 组件的版本号。
正确设置导航图文件和布局文件中的 NavHostFragment 可以解决这个错误。同时,记得检查依赖是否添加,避免依赖问题带来的错误。