selectedItemId 在 androidx.navigation:navigation 库更新后不再工作



我有以下代码:

activityBinding.bottomNav.selectedItemId = R.id.myFragment

它与androidx.navigation:navigation-*2.3.5版本配合良好,但与2.4.2版本和任何其他2.4.*版本不配合。

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

你知道我做错了什么吗?

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

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

由于有了新的库,如果使用导航器将一个片段设置为起始片段,并使用selectedItemId选择相同的片段,结果将是单击它,但不会发生任何事情。

将nav_graph中的起始片段放在其他片段上,然后使用selectedItemId选择正确的片段,使其工作。

最新更新