我正在开始一个新的应用程序,需要有一组标签。在每个选项卡中,我需要多个屏幕,每个屏幕都有自己的后台堆栈(客户端需要)。这是我的意思的快速图表:
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和支持库的新版本的发布,存在嵌套片段。这允许您将片段放在另一个片段内(我假设您可以继续嵌套,但尚未测试它)。我正在考虑切换到使用嵌套片段,因为我目前在我的Tab主机活动中使用了弃用的方法。从本质上讲,我将使用单个主机活动以片段形式实现我的应用程序的整个流程。
在性能问题或内存问题等方面是否有任何挫折?或者我应该使用之前已经完成的实现并使用已弃用的方法?
答案 0 :(得分:1)
嵌套片段可以帮助解决您的问题,我已经尝试过这个实现。但是不要将子Activity(意图)添加到TabHost的TabSpec中。所有儿童活动都应该用碎片替换。 但在我的选择中,我认为这种实施并不好。因为Android有后退键,所以导航会有点连线。按下后退键通常会将用户返回到上一个屏幕。但是这个标签会让后面的导航变得混乱。