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
使正确的片段生效。
我有以下代码:
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
使正确的片段生效。