我正在尝试将我的IOS应用程序转换为android,我在android中有点新。我的应用程序通常使用导航抽屉在片段之间导航。当我在片段A,然后转到片段B,然后按下后退按钮,它下面的代码返回到片段A.但是,当我使用后退按钮转到片段A时,它再次从开始。有没有一种方法可以回到之前的片段而不再加载类,片段中的先前信息将被显示?如果有人能帮忙解决这个问题会很棒吗?
这是按下后退按钮时的代码:
@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();
答案 0 :(得分:2)
编辑:
使用
fragmentTransaction.hide(getFragmentManager().findFragmentByTag("yourTag"));
fragmentTransaction.add(R.id.fragment_container, fragment);
而不是
fragmentTransaction.replace(R.id.fragment_container, fragment);
因为替换删除当前片段并添加下一个片段。所以当回来时它再次重新创建前一个片段。