使用getSupportFragmentManager()的PreferenceFragment和backstack

时间:2015-03-12 08:17:48

标签: android android-fragments android-preferences

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

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

我在我的Activity中切换Fragments,它们被添加到backstack中,直到

 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一起使用?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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