Android 碎片切换不破坏

Android Fragments switch without destroy

我有一个包含 3 个片段的 activity。每个片段都有一个问题。 当我创建 activity 时,我正在为第一个片段调用 .add(...) 方法。对于其他人,我使用 addToBackStack(...) 方法调用 .replace(...) 方法。

所以我在后台遇到这种情况:

.add(Frag1)

--> 碎片 1

.replace(..., Frag2, ...)

-->片段2

-->片段1

.replace(..., Frag3, ...)

--> Frag3

--> 片段2

--> 碎片 1

现在,当我在第三个片段然后返回时,我将从堆栈中弹出它。我想保留第三个片段,所以如果我回到第二个片段然后转到第三个片段,我想回答问题而不是再次调用另一个 onCreate()。

我想创建一种片段切换。可能吗?有人可以帮助我吗?

您可以创建一次 fragment 并根据您的需要 Show/Hide 它。

请参阅 hide & show from FragmentTransaction 文档

另见question

不如改用 viewpager,你需要:

  • 禁用滑动分页,因此您可以通过编程方式更改页面
  • 一次加载所有页面(设置 setOffscreenPageLimit 页面数),以便每个页面保持其状态