迁移到安卓X后"inferred type is FragmentManager? but FragmentManager was expected"错误



我刚刚将我的项目转移到androidX。我使用android工作室重构->升级到androidX。TargetSDK已经28岁了,运行良好。所以没想到会出现很多错误。但我错了,得到了很多错误,其中大多数是关于fragmentManager

inferred type is FragmentManager? but FragmentManager was expected

这是我在片段中调用自定义bottomSheetDialogue的show方法的时候。

bottomDialog.newInstance(//options here
).show(fragmentManager, bottomDialog.TAG)

该方法被注释为Nullable。像这样改变

fragmentManager?.let { manager ->
bottomDialog.newInstance(//options here
).show(manager, bottomDialog.TAG)
}

确保导入androidx.fragment.app.FragmentManager而不是android.app.FragmentManager

我最终使用了parentFrgamentManager,它解决了这个问题。我尝试使用supportFragmentManager,但没有被识别,所以使用了parentFragmentManager。这是我使用的代码。

bottomDialog.newInstance(//options here
).show(parentFragmentManager, bottomDialog.TAG)

相关内容

最新更新