【问题标题】:PreferenceFragment and backstack with getSupportFragmentManager()带有 getSupportFragmentManager() 的 PreferenceFragment 和 backstack
【发布时间】:2017-08-06 10:15:49
【问题描述】:

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

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

我在我的 Activity 中切换 Fragments,这些 Fragments 通过t 添加到 backstack 中

 getSupportFragmentManager()
 .beginTransaction()
 .replace(...)
 .addToBackStack(null)
 .commit();

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

问题:

我也在使用PreferenceFragment,它不包含在支持库中。因此,我不能将片段添加到后台堆栈。

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

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

有没有办法可以将 PreferenceFragment 与 SupportFragmentManager 一起使用?

【问题讨论】:

    标签: android android-fragments android-preferences


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多