警告:NavController.setNavigatorProvider只能从同一个库组中调用(groupId=androidx.navigation)
我创建了一个新项目并在设置底部选项卡导航时遇到了这个警告。
摇篮信息
- 安卓工作室:4.1.2
- 编译SDK版本:29
- 导航依赖:
- 实现“androidx.navigation:navigation-fragment-ktx:2.3.1”
- 实现“androidx.navigation:navigation-ui-ktx:2.3.1”
我的代码:
private fun setupBottomNavigationBar() {
val navController = findNavController(R.id.nav_host_fragment)
supportFragmentManager.findFragmentById(R.id.nav_host_fragment)?.let {
val navigator = KeepStateNavigator(
this,
it.childFragmentManager,
R.id.nav_host_fragment
)
// This line gives me warning
navController.navigatorProvider += navigator
}
}
尝试的解决方案:
// Solution 1
@SuppressLint("RestrictedApi")
private fun setupBottomNavigationBar() {
// Solution 2
// noinspection RestrictedApi
navController.navigatorProvider += navigator
两者都有效,但我仍然不知道为什么会出现此错误。还有什么我应该知道的事情可能会在未来造成问题吗?
提前感谢任何帮助!
回答
您可以使用以下代码避免警告:
navController.navigatorProvider.addNavigator(navigator)
THE END
二维码