Android应用程序具有无限导航

时间:2014-05-16 06:19:44

标签: android

我有一个支持无限导航的应用程序。我使用片段开发了应用程序。当后栈大小增加到15时,我必须删除前5个五个片段,即0-4。我怎样才能做到这一点。

我找到了以下方法

FragmentManager manager = getFragmentManager();
FragmentManager.BackStackEntry fifth = manager.getBackStackEntryAt(4);
manager.popBackStack(fifth.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);

我试过上面的代码:(

1 个答案:

答案 0 :(得分:1)

由于backstack被恰当地命名并且如此操作,因此无法实现此功能。

你可能可以共同攻击可能会做你所要求的事情,但我绝不会建议任何人实际实现它。

对于好奇,这就是我的想法:

[警告]可怕的黑客


我认为实现此功能的唯一方法是在从5到getBackStackEntryAt(int index)的循环中使用getBackStackEntryCount(),将每个BackStackEntry添加到某种列表中。

获得该列表后,您可以清除整个后台堆栈,从而有效地消除您所请求范围内的项目。遍历List<BackStackEntry>,在每个上运行getName()以查找您通过该名称添加的片段。

使用这些名称,您可以查找哪些片段匹配,然后将所有这些片段重新添加到Backstack中。

(这当然假设您一直在添加带有唯一名称的片段。)

根据您的筹码的持续时间,最终结果可能是一个可怕的延迟,而您的设备会计算出所有这些。


我自己没有尝试过,也不建议任何人尝试使用任何人都可以使用的应用程序。

......除非你想要,否则我不是警察。