用碎片,活动和自定义后台堆栈替换ActivityGroup

时间:2012-06-26 18:58:47

标签: android tabs android-fragments android-tabhost

我似乎找不到从ActivityGroup继续前进的正确方法。 我见过Separate Back Stack for each tab in Android using Fragments

采取以下措施:

  • 包含4个标签的应用
  • 每个标签需要拥有自己的后台堆栈(类似于iOS行为,是的)
  • 可以针对平板电脑调整应用程序,因此后台需要保存活动

一旦您需要开发平板电脑,活动将包含多个片段。堆栈的碎片不起作用,因为碎片不能嵌套,因此堆栈必须包含活动。

除了继续使用ActivityGroup之外,我似乎无法找到解决方法。

谢谢!

编辑1: 一个具体的例子。

手持设备:

 TAB 1 -> Activity 1A (Fragment 1A) 
       -> Activity 1B (Fragment 1B)  
       -> Activity 1C (Fragment 1C)

片剂:

 TAB 1 -> Activity 1A (Fragment 1A and 1B)
       -> Activity 1C (Fragment 1C)

@beyerss我认为我不能始终如一地依赖FragmentTransactions。如上所述,我可以在Transaction中添加多个片段,但Activity布局可能不一致。因此,我仍然需要ActivityGroups。

1 个答案:

答案 0 :(得分:1)

有没有理由不能使用可以添加到后台堆栈的FragmentTransaction?如果屏幕上有三个片段并且它们都同时发生变化,则需要三个FragmentTransactions,但片段不会嵌套,因此它应该可以工作。

为了让每个标签都有自己的后台堆栈,您可能需要明智地自己为每个标签管理它。即使用放在后端堆栈上的每个FragmentTransaction的数组,如果用户切换选项卡,则删除存储的所有FragmentTransactions(但仍然跟踪它们)然后当用户返回选项卡时将它们添加回后面以相同的顺序堆叠。