在具有AndroidX命名空间的PreferenceFragment中显示DialogFragment

时间:2018-10-09 07:39:52

标签: android androidx

我们目前正在将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派生的。

有人遇到过这个问题,并且碰巧知道一种解决方案,如何仍可以在设置中重用该对话框?

1 个答案:

答案 0 :(得分:0)

要获取正确的FragmentManager,我们需要继承自androidx.preference.PreferenceFragmentCompat而不是androidx.preference.PreferenceFragment。这解决了我们的问题。

有关PreferenceFragmentCompat的更多信息,请参见Google Developer Homepage