Android从后台堆栈中将片段放在前面,而不会弹出任何其他片段

时间:2014-06-11 10:49:49

标签: android android-fragments android-navigation

我必须像iOS一样实现导航结构,或者你可以说像浏览器一样。在我的应用程序中,它就像我有3个选项卡,每个选项卡有多个片段流,如

标签1 - >片段1 - >片段2 - >片段3

标签2 - >片段1 - >片段2

标签3 - >片段1 - >片段2 - >片段3 - >片段4

导航就像当用户切换选项卡然后可以查看该选项卡的最后打开的片段并按下后退应该返回到之前打开的该选项卡的片段。所有这些片段都是从单个片段活动加载的,所以我想通过创建三个不同的堆栈来跟踪这些选项卡中打开的片段来手动管理导航。

我想要的是一种方法,通过该方法,我可以将之前添加的片段带到前面而不会弹出任何其他片段,即使在片段之后添加了一些片段。在背面按下我将弹出当前片段并根据我自己的托管堆栈将前面添加的另一个片段带到前面。

我搜索了一个方法来引入先前加载的片段,但它们会弹出在该片段之后加载的所有片段,这对我来说是不可接受的。

1 个答案:

答案 0 :(得分:3)

你可以尝试

getSupportFragmentManager().beginTransaction().attach(fragmentA).commit;

getSupportFragmentManager().beginTransaction().show(fragmentA).commit;

通过循环遍历

给出的所有片段,隐藏FragmentActivity中的其他片段
 getSupportFragmentManager().getFragments();
 //This gives list of fragment in stack