Android FragmentTransaction、ActionBar 选项卡和多个 fragment

标签 android android-fragments

所以,我正在使用兼容性库构建一个平板电脑应用程序,但遇到了一个我似乎无法弄清楚的奇怪现象。在一项 Activity 中,我有 2 个选项卡(选项卡 A 和选项卡 B)和 3 个 fragment ( fragment A1、A2 和 B)。与选项卡 A 关联的 ActionBar.TabListener 处理 fragment A1 和 A2 的添加和删除,与选项卡 B 关联的 ActionBar.TabListener 处理选项卡 B 的添加和删除。到目前为止一切顺利。

当我启动 Activity 时,会出现奇怪的行为(因此选择选项卡 A,并且从左到右正确地显示 fragment A1 和 A2)单击选项卡 B(因此删除 fragment A1 和 A2,并显示 fragment B ,仍然正确),然后单击返回选项卡 A! 现在, fragment A1 和 A2 显示,但顺序相反:先是 A2,然后是 A1!

有人经历过这种奇怪的事情吗?如果我再次选择选项卡 B,然后再次选择选项卡 A,它们会再次反转为正确的顺序,然后继续循环。根据this article ,“如果您将多个 fragment 添加到同一个容器中,那么添加它们的顺序决定了它们在 View 层次结构中出现的顺序”,但奇怪的是,现在的情况似乎并非如此。

有什么想法吗?提前致谢!

最佳答案

According to this article, "If you're adding multiple fragments to the same container, then the order in which you add them determines the order they appear in the view hierarchy", which strangely doesn't seem to be the case now does it.

就我个人而言,我不会指望这一点。

例如,假设您使用的是水平LinearLayout。您当前的代码可能将两个 fragment 都放入 LinearLayout 中。我的方法是在 LinearLayout 中已有两个 FrameLayouts,并将每个 fragment 放入其中一个 FrameLayouts 中。

关于Android FragmentTransaction、ActionBar 选项卡和多个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6603330/

相关文章:

java - 将我的数据库移动到 SD 卡不起作用

android - 动态添加 fragment 时出错 -java.lang.IllegalStateException :

android - 将 String 从 Broadcastreceiver 传递给 MainActivity 并将其放入 Fragment

android - 为什么我在 Android 中得到 "Cannot remove Fragment attached to a different FragmentManager"?

java - 如何检查,某个类的源库是什么? java

android - 刷新 ListView 中的特定项目

java - 如何在 Android 项目中使用 JavaFX Activity ? (Kokos 示例项目)

android - 从 strings.xml 中的数组设置微调器的值

android - 像 fragment 一样在 Activity 之间发送数据

android - Youtubeplayer fragment 中的内容进入 viewpager