"inferred type is FragmentManager? but FragmentManager was expected" 移动到 androidX 后出错
"inferred type is FragmentManager? but FragmentManager was expected" error after moving to androidX
我刚刚将我的项目移至 androidX。我使用 android studio 重构->升级到 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)
我刚刚将我的项目移至 androidX。我使用 android studio 重构->升级到 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)