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