Har*_*ale 16

就我而言,我忘记在 FragmentContainerView 中添加 android:name="androidx.navigation.fragment.NavHostFragment"

  • 这也是我的解决方案。谢谢! (2认同)

tah*_*k97 8

更新:确保您的菜单项 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
        )
    }
Run Code Online (Sandbox Code Playgroud)


M S*_*lah 5

我也遇到了这个问题,解决办法其实很简单。

确保您的菜单项的 ID 与 NAV_GRAPH 的 ID 匹配,而不是目的地的 ID 匹配。

我对菜单项和目的地使用相同的 id,但在本例中,菜单项应具有与 NAV_GRAPH 相同的 id。