我们目前正在将Android应用迁移到新的androidx名称空间,如此处https://developer.android.com/jetpack/androidx/migrate的官方开发人员页面所述
不幸的是,我们一些旧的实现似乎已被破坏。我们正在androidx.preference.PreferenceFragment
之一中重用DialogFragment(最初在应用程序设置之外使用)。迁移到androidx之后,DialogFragment现在需要显示一个androidx.fragment.app.FragmentManager
实例-不再可以通过调用
FragmentManager fm = getFragmentManager();
PreferenceFragment中的。该调用仍将提供android.app.FragmentManager
的实例。我猜这是因为PreferenceFragment不是从androidx.fragment
派生的。
有人遇到过这个问题,并且碰巧知道一种解决方案,如何仍可以在设置中重用该对话框?
答案 0 :(得分:0)
要获取正确的FragmentManager,我们需要继承自androidx.preference.PreferenceFragmentCompat
而不是androidx.preference.PreferenceFragment
。这解决了我们的问题。
有关PreferenceFragmentCompat的更多信息,请参见Google Developer Homepage