在android中如何在每个选项卡中创建不同的片段/活动堆栈,这些堆栈在选项卡更改中保持不变?

时间:2012-02-16 01:19:15

标签: android android-fragments

 TAB1          TAB2      TAB3
   |            |          |
 FragmentA     FragmentC  FragmentE
   |             |         |
FragmentB     FragmentD  FragmentF

我希望我的用户界面如上所示进行布局。我已经读过片段如何工作,看起来我应该能够实现一个用户界面,允许我在标签之间切换,使每个标签都有一个片段,在片段上选择一些东西会导致显示另一个片段。

现在问题:我看不出如何在每个标签中维护不同的片段堆栈。我想要的是在使用Tab2中的后退按钮时能够从fragmentD转到FragmentC。切换到Tab1应该显示FragmentB并允许我使用BACK按钮导航到FragmentA。 有没有办法像我描述的那样拥有多个片段堆栈?

5 个答案:

答案 0 :(得分:1)

模式应该是这样的:

   TAB1          TAB2         TAB3
    |             |            |
 Activity 1    Activity 2  Activity 3
    |             |            |
 FragmentA     FragmentC   FragmentE
    |             |            |
 FragmentB     FragmentD   FragmentF

你不能做(据我所知)你正在尝试用当前的API做什么。查看here了解更多详情。

答案 1 :(得分:1)

答案 2 :(得分:0)

在你的SDK中你有de APIdemos样本......在那里你会找到示例代码......,将它导入项目。从现有的源创建新的并转到/ androisdkdirectory / samples / android-x / Apidemos然后完成

你会发现一个Java文件和那里不同选项卡类型的视图,对于学习可以使用的新视图非常有用

答案 3 :(得分:0)

我的猜测是,如果你只是避免使用backstack并通过标签引用你的片段,这是可能的。例如,如果您为fragmentC提供标签“fragmentC”,那么如果fragmentD可见,您可以创建一个FragmentTransaction,用fragmentC替换fragmentD。当你的转换定义为你在这里布局时,后面堆栈看起来更有价值。

答案 4 :(得分:0)

你为什么不打电话:

fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

每当点击标签时?