androidx.navigation: 导航库更新后,selectedItemId 不再起作用

selectedItemId doesn't work anymore after androidx.navigation:navigation library update

我有以下代码:

activityBinding.bottomNav.selectedItemId = R.id.myFragment

androidx.navigation:navigation-* 版本 2.3.5 中工作正常,但在版本 2.4.2 和任何其他 2.4.* 版本中不工作。

我到处搜索但我还没有找到让它工作的解决方案(也没有像 menu.findItem(R.id.myFragment).isChecked = true 这样的替代代码)。

知道我做错了什么吗?

我用的是 2.4.1 版本的 androidx.navigation:navigation-*

navController.addOnDestinationChangedListener { _, destination, _ ->
            when (destination.id) {
                R.id.mainFragment, R.id.recentsFragment, R.id.favouriteFragment
                -> {
                    // do your Code
                }
                else -> {
                   //do your code
                }
            }
            Log.i("TLogs", "onCreate: ${bottomNavigationView.selectedItemId}")
        }

大家可以按照我做的和附上的例子进行查看

日志显示当前项目 ID

自新库以来,如果使用导航器将一个片段设置为起始片段并且 select 与 selectedItemId 相同的片段,结果将是您将点击它但什么也不会发生。

将 nav_graph 中的起始片段放到其他地方,然后 select 使用 selectedItemId 使正确的片段生效。