5

我正在开发一个应用程序,该应用程序具有三个在 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. 当然,我不想要这个。

4

1 回答 1

4

通过在布局中将第一个片段设置为“android:name”,确保不使用与 XML 的静态片段关系。

使用 framelayouts 制作 XML 的布局并灵活添加片段,如本教程所示:

http://developer.android.com/training/basics/fragments/fragment-ui.html

于 2012-07-18T12:24:50.683 回答