Android 替换碎片并按回

Android 替换碎片并按回,android,android-fragments,gmail,android-support-library,android-listfragment,Android,Android Fragments,Gmail,Android Support Library,Android Listfragment,您好,下面是我的代码,以显示列表片段中的细节片段 getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.FragmentContainer1, DealFragment.newInstance(dealItems, position, currentPage, totalCount)).addToBackStack(null).commit(); 现在,当我按下后退按钮时,我得到了新的ListFrag

您好,下面是我的代码,以显示列表片段中的细节片段

getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.FragmentContainer1, DealFragment.newInstance(dealItems, position, currentPage, totalCount)).addToBackStack(null).commit();
现在,当我按下后退按钮时,我得到了新的ListFragment.ListFragmnt状态未保存

我提到了一些堆积如山的问题,但没有得到正确的答案

我尝试了下面的代码,但当应用程序进入后台并被系统杀死时(比如我正在从详细信息视图打开chrome,当我从chrome返回时,我的应用程序被关闭并最小化)
FragmentTransaction ft=getActivity().getSupportFragmentManager().beginTransaction();
ft.hide(getActivity().getSupportFragmentManager().findFragmentById(containerId));
ft.add(集装箱,详细碎片);
ft.addToBackStack(空);
ft.setTransition(FragmentTransaction.transition\u FRAGMENT\u OPEN);
ft.commit()

当我移动到ListFragment以详细说明热维护详细说明片段的状态时,这个问题的任何解决方案

我从堆栈溢出中引用了此链接

当我们从列表到细节再回到列表片段时,我想要和Gmail应用程序一样的功能。滚动位置,所有在我的情况下不会发生的事情都会保持不变

尝试以下操作:

@Override 
public void onBackPressed() { 
    if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
        getSupportFragmentManager().popBackStack(); 
    } else { 
        this.finish(); 
    }
}

在活动中设置第一个片段:

        ListFragment listFragment = new ListFragment();
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.add(R.id.FragmentContainer1, listFragment );
        transaction.addToBackStack(null);
        transaction.commit();
        DetailFragment detailFragment = new DetailFragment();
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.replace(R.id.FragmentContainer1, detailFragment);
        transaction.addToBackStack(null);
        transaction.commit();
然后在listfragment调用详细信息片段中:

        ListFragment listFragment = new ListFragment();
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.add(R.id.FragmentContainer1, listFragment );
        transaction.addToBackStack(null);
        transaction.commit();
        DetailFragment detailFragment = new DetailFragment();
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.replace(R.id.FragmentContainer1, detailFragment);
        transaction.addToBackStack(null);
        transaction.commit();

是否希望在按DetailFragment中的“上一步”按钮后不获取ListFragment?没有为ListGFFragment保存片段状态。根据我的回答,请尝试覆盖onBackPressed。是的,如果不覆盖onBackPressed,这将保留上一个片段中的上一个已知状态。或者,如果你愿意,什么都不会改变。这不会改变help@apk实际上,隐藏第一个片段是个好主意。那么,使用第二种方法的问题是什么?