我正在处理一个包含三个片段的应用程序,这些片段在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.
当我单击过滤器按钮并按Back时,我会在MenuFragment后面显示DetailFragment(或DetailFragmentFiltered).那么,我不想要这个.
最佳答案
通过在布局中将第一个片段设置为“android:name”,确保不使用与XML的静态片段关系.
原文链接:/android/430649.html使用framelayouts制作XML的布局并灵活地添加片段,如本教程所示:
http://developer.android.com/training/basics/fragments/fragment-ui.html