处理单个片段中的后退按钮

Rah*_*uja 5 android android-fragments navigation-drawer

我有一个带导航抽屉的应用程序.当我启动应用程序时,我在主屏幕(屏幕A)上的内容是"hello world"然后当我从导航抽屉中选择一个项目时,我加载一个片段并获得"新的hello world"然后当我选择一个时导航抽屉中的项目,我加载一个片段并获得"你好宇宙".但由于这一切都是通过单个片段发生的,当我按下设备后退按钮时,我应该得到如下所示的上一个片段:

"你好宇宙">按下>"新的你好世界">按下>"你好世界"

我该怎么处理?

注意:

在改变我试过的片段的同时

fragmentManager.beginTransaction().replace(R.id.mainContent, fragment).commit();
Run Code Online (Sandbox Code Playgroud)

然后我改为:

fragmentManager.beginTransaction().add(R.id.mainContent, fragment).addToBackStack("tag").commit();
Run Code Online (Sandbox Code Playgroud)

但没有任何效果.该应用程序退出按钮后退出.这是因为同一个片段一次又一次地被另一个内容取代了吗?

dor*_*ora 1

您尝试的第二种方法是正确的。尝试通过覆盖方法进行popBackStack()调用。BackPressed()onBackPressed()

 @Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() > 0) {
        getFragmentManager().popBackStack();
    } else if (getFragmentManager().getBackStackEntryCount() == 0) {
        super.onBackPressed();
    }
}
Run Code Online (Sandbox Code Playgroud)