带碎片和后退按钮的抽屉

Drawer with Fragments & back Button

所以我是 Android 开发的新手,并且一直在尝试弄清楚如何能够使用片段上的后退按钮而不关闭应用程序,而是让它最终回到第一个activity。 Google 收件箱的确切工作方式,然后如果再次按下后退按钮,它将关闭该应用程序。我正在进行的是以下代码

https://github.com/g60madman/AndroidFragmentNavigationDrawer/blob/master/app/src/main/java/com/chrisrisner/fragmentsample/MainActivity.java

在代码中它使用 Google 抽屉的默认功能来关闭抽屉,如果抽屉打开然后退出。

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

我已经搜索了整个堆栈流,但仍然没有得到人们提供的建议,因为他们的代码似乎不适用于此代码。任何帮助将不胜感激。

在您的 FragmentTransaction 上,您应该使用方法

fragmentTransaction.addToBackStack(yourTag)

之前

.commit()

这样一来,当您单击“后退”按钮时,您会返回并且不会关闭该应用程序。 文档:https://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)

更新: 41121 行:

fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();

应该阅读

fragmentManager.beginTransaction() .replace(R.id.flContent,fragment).addToBackStack(null).commit();

希望对您有所帮助