替换片段并按回

时间:2017-05-16 09:57:55

标签: 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();

现在,当我按下后退按钮时,我得到新的ListFragment.ListFragmnt状态未保存。

我提到了一些堆栈问题,但没有得到正确答案

我尝试了下面的代码,但是当应用程序进入后台并被系统杀死时会导致问题(就像我从详细信息视图中打开chrome,当我从chrome返回时,我的应用程序已关闭并最小化)FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); ft.hide(getActivity().getSupportFragmentManager().findFragmentById(containerId)); ft.add(containerId, detailFragment); ft.addToBackStack(null); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.commit();

当我移动到ListFragment以详细说明详细碎片的热维护状态时,有关此问题的任何解决方案。

我已从堆栈溢出here is the link

中引用此链接

当我们从列表到详细信息并且返回列表片段时,我想要与Gmail应用程序相同的功能。滚动位置和所有内容都保持不变,这在我的情况下不会发生

2 个答案:

答案 0 :(得分:0)

试试这个:

lblSubTotal

答案 1 :(得分:0)

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

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

然后在listfragment中调用详细信息片段:

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