在Backstack中添加两次相同的片段?

时间:2015-11-27 09:14:29

标签: android android-fragments back-stack fragment-backstack

这是我的问题。

我基本上使用的片段包含有关某个地方的一些信息,以及同一城市中所有其他地方的列表。 通过单击列表中的某个元素,您可以访问同一片段的其他实例,其中包含与您单击的元素相关的信息。

问题是,如果后台堆中包含两个包含相同位置信息的片段,则后台堆栈不再起作用。

这是我创建新片段的方式:

Bundle bundle = new Bundle();
                    bundle.putString("some data", "some data");
                    Fragment contentFragment = new CoreFragment(id);
                    contentFragment.setArguments(bundle);
                    FragmentManager fm = getActivity().getSupportFragmentManager();
                    FragmentTransaction fragmentTransaction = fm.beginTransaction();
                    fragmentTransaction.replace(R.id.actmain_core, contentFragment, "corefragment");
                    fragmentTransaction.addToBackStack(contentFragment.getClass().getName());
                    fragmentTransaction.commit();

如果所有片段使用不同的数据,它将完美地工作。但是,如果我将一个片段添加到backstack中,并且已经在backstack中存在的片段中使用了数据,那么当我按下后退按钮来访问它时,它将不会显示。

如何解决此问题?如何管理堆栈及其精确副本在后台堆栈中存在但需要区分的情况?

0 个答案:

没有答案