选项卡、活动和嵌套片段

4

我正在开发一个新应用程序,需要有一组选项卡。在每个选项卡内,我需要多个屏幕,每个屏幕都有自己的返回栈(客户要求)。以下是我所说的内容的简图:

Tab 1
   |
   |_Screen1a --> Screen1b --> Screen1c
Tab 2
   |
   |_Screen2a -->Screen2b
Tab 3
   |
   |_Screen3a --> Screen3b --> Screen3c --> Screen3d
...etc

现在,我已经使用FragmentActivity作为选项卡主机活动完成了这项工作。每个选项卡都是一个FragmentActivity,包含每个片段。我的意思是:

FragmentActivity
    FragmentActivity1
       |
       |_Fragment1 --> Fragment2 --> Fragment3
    FragmentActivity2
       |
       |_Fragment4 --> Fragment5
    FragmentActivity3
       |
       |_Fragment6 --> Fragment7 --> Fragment8 --> Fragment9
    ...etc

现在,随着4.2 SDK和新版本的Support Library的发布,出现了嵌套片段。这使您可以将一个片段放置在另一个片段内(我假设您可以继续嵌套,尽管尚未测试)。我考虑切换到使用嵌套片段,因为我目前正在我的Tab主机活动中使用已弃用的方法。基本上,我将整个应用程序的流程实现为片段,并使用单个主机活动。
在性能问题或内存问题等方面,是否存在任何不利因素?还是我应该选择之前的实现并使用已弃用的方法?

你之前是如何使用片段实现的?我的意思是我们目前处于类似的情况下来实现这个。我尝试使用新的支持库,但没有太多运气。目前,我的每个选项卡中都有一个片段。我需要的是,我想在特定的选项卡内进行导航。你是否为每个选项卡维护自己的后退堆栈?如果你有任何信息,请分享。 - drooooooid
我实际上没有使用Fragment作为选项卡内容。我使用FragmentActivity作为选项卡内容。这样每个FragmentActivity都可以管理后退堆栈,因此您不必手动执行此操作。 - ariets
2
好的,谢谢。我已经使用Fragment而不是Activity group/Fragmetn activity使其工作。回退栈管理是通过FragmentManager的addToBackStack/popBackstack方法实现的。不过,我认为使用新的修订支持库进行嵌套片段会更容易。希望有人能提供一个适当/强大的文档。 - drooooooid
1
看看我的示例项目,它涵盖了在一个单一的活动中使用视图分页器的嵌套片段。虽然它并不是真正优化或最新的,但它可能会给你一些想法。 - Can Elmas
1个回答

1
嵌套片段可以帮助解决您的问题,我已经尝试过这个实现。但不要将子活动(意图)添加到TabHost的TabSpec中。所有子活动都应替换为片段。 但在我看来,我不认为这种实现很好。因为导航会有点奇怪,因为Android有一个返回键。按下返回键通常会将用户返回到上一个屏幕。但是这个选项卡会混乱后退导航。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接