我从NavigationAdvancedSample复制了NavigationExtensions.kt扩展文件,但出现此异常:
答案 0 :(得分:3)
更新:确保菜单项ID与导航资源文件ID相同
也:如果您在ItemReselectedListener方面遇到问题 添加空安全检查,您的侦听器应该是这样的:
setOnNavigationItemReselectedListener { item ->
val newlySelectedItemTag = graphIdToTagMap[item.itemId]
val selectedFragment = fragmentManager.findFragmentByTag(newlySelectedItemTag)
as NavHostFragment?
val navController = selectedFragment?.navController
// Pop the back stack to the start destination of the current navController graph
navController?.popBackStack(
navController.graph.startDestination, false
)
}
答案 1 :(得分:0)
我也遇到了这个难题,解决方案实际上非常简单。
确保菜单项的ID与NAV_GRAPH的ID匹配,而不与目标的ID匹配。
我对菜单项和目的地使用相同的ID,但是在这种情况下,菜单项应与NAV_GRAPH具有相同的ID。
答案 2 :(得分:0)
我也遇到了同样的问题
检查您是否已设置开始目的地并将其附加到片段。 在您的导航图中设置 app:startDestination="@id/your fragment"
这应该可以解决您的问题