Android 如何避免在创建活动时出现片段首选项屏幕?

Android 如何避免在创建活动时出现片段首选项屏幕?,android,navigation-drawer,Android,Navigation Drawer,我想创建一个基于抽屉的设置界面。我已将PreferenceFragment添加到抽屉的片段中,hare是我的代码: PrefFragment.java public class PrefFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我想创建一个基于抽屉的设置界面。我已将PreferenceFragment添加到抽屉的片段中,hare是我的代码:

PrefFragment.java

public class PrefFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pref_frag);
    }
}
实用性:

//start to add a prefFragment
PreferenceFragment prefFrag = new PrefFragment();
getFragmentManager().beginTransaction()
      .replace(R.id.fragment_container, prefFrag).commit();
pref_frag.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckBoxPreference
            android:title="pref fragment"/>

    <EditTextPreference
            android:title="edit"/>

    <PreferenceScreen> <!--daunt-->
        <CheckBoxPreference
                android:title="inner pref screen"/>
    </PreferenceScreen>
</PreferenceScreen>

但这导致了一个问题,我打开了内部PreferencesScreen,它打开了一个活动,没有抽屉可以滑出,如何解决这个问题?

没有活动,片段就无法生存。这就是preference函数的工作方式-子屏幕是另一个活动。要做您想做的事情,您需要编写自己的片段来设置首选项,而不是使用PreferenceFragment。@krislarson我明白了您的想法,我可以用另一个片段替换当前片段,但我认为这不是最佳做法,或者我想做的不是Android推荐的