取消 onCreate 的 popBackStack

popBackStack with dismissing onCreate

我正在尝试将我的 IOS 应用程序转换为 android,我对 android 有点陌生。我的应用程序通常使用导航抽屉在片段之间导航。当我在片段 A,然后转到片段 B,然后按后退按钮,下面的代码返回到片段 A。但是,当我使用后退按钮转到片段 A 时,它再次从开始。有没有一种方法可以返回到上一个片段而无需再次加载 class 以显示片段中的上一个信息?如果有人能对此提供帮助,那就太好了?

这是按下后退按钮时的代码:

 @Override
    public void onBackPressed() {

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

        if (drawer.isDrawerOpen(GravityCompat.START)) {

            drawer.closeDrawer(GravityCompat.START);

        } else {

            android.support.v4.app.FragmentManager fm = getSupportFragmentManager();

            if (fm.getBackStackEntryCount()>0) {

                fm.popBackStack();

            }
            else {
                System.out.println("no more back");
            }

        }
    }

这就是我在片段之间导航的方式:

usersFragment fragment = new usersFragment();
            android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
            fragmentTransaction.replace(R.id.fragment_container, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();

编辑:

使用

fragmentTransaction.hide(getFragmentManager().findFragmentByTag("yourTag"));
fragmentTransaction.add(R.id.fragment_container, fragment);

而不是

fragmentTransaction.replace(R.id.fragment_container, fragment);

这是因为 replace 删除当前片段并添加下一个片段。所以当回来时它再次重新创建以前的片段。