【问题标题】:FragmentManager backstackFragmentManager 后台堆栈
【发布时间】:2017-10-14 08:23:34
【问题描述】:

我对 FragmentManager 的 backstack 背后的基本原理有点困惑。

假设一个活动有两个容器来容纳不同的片段:问题是当使用片段事务将片段添加到两个容器时,无论正在使用哪个容器,backstack 的计数都会增加。

这对我来说真的没有意义。 如果这不是在 Android 中推广的方式,那么我们如何在同一个活动中独立管理 2 个后台堆栈(每个活动只有一个 FragmentManager)?
我可能只是在这里遗漏了一些明显的东西。

【问题讨论】:

  • 您不会错过任何东西,Fragment 在过去是一个糟糕的决定,今天仍然如此,尽管 Google 一直在尝试处理它们。 “具有某种生命周期但不是活动的事物”。

标签: android


【解决方案1】:

Fragment 是附加到 Activity 的模块,彼此之间不应该知道 Fragment,并且应该通过 Activity 进行通信。

FragmentManager 由 Activity 和每个 action such as add, remove, or replace a fragment are provided through a FragmentTransaction 提供的 FragmentManager 管理,每个活动只有一个可用的 backstack。所以,就像@hackbod said at this post

您只需要实现自己的独立后退栈,或者您可以使用 FragmentTransaction.detach 来管理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-04
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多