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
.
处理
我开始将我的应用程序更改为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
.