【发布时间】:2012-07-17 08:35:20
【问题描述】:
我正在开发一个包含三个在 XML 文件中定义的片段的应用程序:
[HeaderFragment]
[MainFragment]
[FooterFragment]
第一个屏幕启动三个片段,Header- 和 FooterFragment 是静态的,所以不会改变内容。
MainFragment 最初是一个带有按钮和透明背景的菜单 (MenuFragment)。当我单击菜单中的一个项目时,我将MenuFragment 替换为一个新片段(DetailsFragment),如下所示:
FragmentTransaction transaction = mFragmentManager.beginTransaction();
Fragment newFragment = new DetailFragment();
transaction.replace(R.id.content_container, newFragment);
transaction.addToBackStack(newFragment.getTag());
transaction.commit();
DetailFragment 出现,当我按回时,MenuFragment 出现,一切正常。
这是我的问题:
在我的DetailFragment 中,我有一个用于过滤内容的切换选项,这是一个按钮。单击此按钮时,DetailFragmentFiltered 将替换DetailFragment,方式与上述代码相同。唯一的区别是我没有将它添加到BackStack,因为在过滤并按下Back之后..我仍然想返回MenuFragment。
当我单击过滤器按钮并按返回时,DetailFragment(或DetailFragmentFiltered)显示在我的MenuFragment 后面。当然,我不想要这个。
【问题讨论】: