PreferenceFragment 和 backstack 与 getSupportFragmentManager()

PreferenceFragment and backstack with getSupportFragmentManager()

我开始将我的应用程序更改为Material design

我已将我的 Activity 更改为 ActionBarActivity,并将我的主题更改为 AppCompat,以便能够为 ActionBar 着色并使用 AppCompat 导航抽屉。

我正在切换 Activity 中的片段,这些片段通过

添加到后台堆栈
 getSupportFragmentManager()
 .beginTransaction()
 .replace(...)
 .addToBackStack(null)
 .commit();

由于 AppCompat,我必须使用 SupportFragmentManager。因此,我必须使用支持库中的 android.support.v4.app.Fragment

问题:

我也在使用 PreferenceFragment,它不包含在支持库中。因此,我无法将片段添加到 backstack。

错误:Type FragmentTransaction 中的方法 replace(int, Fragment, String) 不适用于 Arguments (int, SettingsFragment, String)

我现在使用的解决方案是library。我不想使用它,因为我的目标是 API 14.

有什么方法可以将 PreferenceFragment 与 SupportFragmentManager 一起使用?

不,支持 FragmentManager 只接受支持 Fragment,您无法使用 android.app 包中的片段。
顺便说一句,我建议您改用 this library 。它有 minSdkVersion 个 7,但它有最近的更新,我认为它比您当前使用的库更稳定。

使用 preference-compat-v7 支持库中的 PreferenceFragmentCompat。这些对象可以由 SupportFragmentManager.

处理