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实际上,隐藏第一个片段是个好主意。那么,使用第二种方法的问题是什么?