我有以下代码:
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
选择正确的片段,使其工作。