android - 不同的Android Fragment有共同的backstack吗?

标签 android tabs android-fragments

我有一个应用程序,它具有以下架构:

它有 FragmentActivity,其中包含 Fragment。此 fragment 包含 TabHost,其中有 4 个选项卡。每个选项卡都有自己的布局。我正在创建新的 fragment 并将它们绑定(bind)到这些布局。好吧,我终于有了 4 个 fragment 。

每个 fragment 都可以作为它的子 fragment 启动一些新 fragment 。我认为每个 fragment 都有自己的后台堆栈。但似乎并非如此。看起来这些 fragment 的公共(public)后台堆栈。

我的意思是,如果我选择第一个选项卡,并从那里开始新的子 fragment ,然后选择第二个选项卡,从那里开始新的子 fragment ,然后我回到第一个选项卡,然后按后退按钮,它会销毁其中的子 fragment 第二个选项卡,但不是来自第一个选项卡。如果我再按一次后退按钮,它就会成功销毁第一个选项卡中的子 fragment 。

嗯,我在这里发现了一些同样的问题Separate Back Stack for each tab in Android using Fragments

有人提出将这 4 个 fragment 分别包装到 FragmentActivity 中,但我担心重构我的所有代码会花费太多时间。因为项目即将结束,我没有太多时间进行如此大规模的重构。

也许有人可以为我的问题提供更好的解决方案?

德米特里

最佳答案

It has FragmentActivity which contains a Fragment. This fragment contains TabHost with 4 tabs in there. Each tab has own layout. And I'm creating new fragments and bind them to these ayouts. Well, finally I have 4 fragments.

结构应该是这样的:

Activity 托管一个 TabHost,其中包含 4 个 FragmentActivities(每个选项卡一个)。每个 FragmentActivity 都有自己的后台堆栈。这应该会给你你想要的结果。

如果您还没有考虑过尝试FragmentTabsPager您可能想看一下它,看看它是否适合您的需要。这也会有更好的用户体验。

如果您尝试将内容从 Fragments 移动到 Activities 以及反之亦然,那么重构应该不会花费太多时间。

祝你好运。

关于android - 不同的Android Fragment有共同的backstack吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9312255/

相关文章:

android - react native ScrollView 高度

java - 在仍在使用时使用迭代器从 ArrayList 中删除内容

java - Android Studio) list 合并失败

java - JTabbedPane 选项卡上的繁忙图形

Android标签点击滚动到顶部

android - 如何以编程方式或在操作栏选项卡中使用 xml 更改选定的选项卡背景颜色?

java - Android Sqlite 操作

android - 共享元素过渡 imageview 变白

java - 没有找到适合 add() 错误的方法

android - 为什么在隐藏的 fragment 中调用 onResume()?