Android 从PreferenceFragment返回导航

Android 从PreferenceFragment返回导航,android,android-fragments,Android,Android Fragments,我的背部导航方式如下: getFragmentManager().beginTransaction() .add("ToDoFragment") .replace(R.id.content_frame, new SettingsFragment()).commit(); 创建/提交片段时: getSupportFragmentManager() .beginTransaction()

我的背部导航方式如下:

getFragmentManager().beginTransaction()
                .add("ToDoFragment")
                .replace(R.id.content_frame, new SettingsFragment()).commit();
创建/提交
片段时

getSupportFragmentManager()
            .beginTransaction()
            .addToBackStack("ToDoFragment")
            .replace(R.id.content_frame, fragmentR, fragmentR.getClass().getSimpleName())
            .commit();
当捕捉到后退按钮时,按下:

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

    // If navigation drawer is open, close it
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
        setDrawerState(true);
        displayMenu(true);
    }
}
这适用于我的
片段
,但我希望对我的
首选项片段
,我这样称呼它:

getFragmentManager().beginTransaction()
                .add("ToDoFragment")
                .replace(R.id.content_frame, new SettingsFragment()).commit();
但当按下我的背部导航时。按钮它不会将我带回上一个
片段
,而是与我的
设置
视图和我的上一个
片段
重叠

我缺少/不理解什么

编辑:


我添加了
getFragmentManager().popbackackimmediate()
对于我的
onBackPressed()
方法,我没有任何视图重叠,但是当进入我的设置并按back时,片段是空的。

在管理器中使用“add”而不是“add”,因为add保留现有片段并添加新片段,这意味着现有片段将处于活动状态。因此,不会为现有片段调用back按钮

getFragmentManager().beginTransaction()
                .addToBackStack("ToDoFragment")
 .replace(R.id.content_frame, new SettingsFragment()).commit();
在这种情况下,使用OnDepressed()时,您不能覆盖
onBackPressed()
,请使用
OnDepath()