在我的应用程序中,当在我的nave图xml文件中使用嵌套图时,我遇到了一个问题--这是我的nav_graph文件
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@navigation/nav_entries">
<include app:graph="@navigation/nav_entries"/>
<include app:graph="@navigation/nav_states"/>
<include app:graph="@navigation/nav_calendar"/>
<include app:graph="@navigation/nav_more"/>
</navigation>这是activity_main中的片段容器视图
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragmentContainerView"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph" />这是从主要活动到使用nave控制器设置底部导航视图的代码。
private fun setupUi() {
val navHostFragment = supportFragmentManager.findFragmentById(R.id.fragmentContainerView) as NavHostFragment
navController = navHostFragment.navController()
binding.bottomNavigationView.setupWithNavController(navController)
}但是当我运行这个应用程序时,它会崩溃,这就是错误:
navigation destination com.iranmobiledev.moodino:navigation/nav_entries is not a direct child of this NavGraph帮我修好。
发布于 2022-05-02 18:26:47
这是错误的。在导航中,并不是所有嵌套导航图都应该用include来定义,节点(片段)应该定义为开始目标。您可以在嵌套导航图中定义其他片段,并将其与包含标记一起使用。使用以下代码:
app:startDestination="@id/first_fragment_id">而不是:
app:startDestination="@navigation/nav_entries">发布于 2022-09-19 17:32:22
我也面临着同样的问题。
与其在xml中添加图表,不如以编程方式将其膨胀。这个问题将得到解决。
https://stackoverflow.com/questions/72088461
复制相似问题