片段在背景可看见

时间:2012-07-17 08:35:20

标签: android android-fragments

我正在处理一个包含三个片段的应用程序,这些片段在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后面。那么,我不想要这个。

1 个答案:

答案 0 :(得分:4)

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

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

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