【问题标题】:Why direct communication between fragments is not recommended?为什么不建议在 Fragment 之间直接通信?
【发布时间】:2012-07-20 06:05:55
【问题描述】:

developer.android.com上学习android Fragment时,指定不推荐两个Fragment之间直接通信。我想知道两个Fragment之间通信失败的后果和情况?

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    嗯,对于 Fragments,您并不总是确定它们在通信时是否还活着并附着。 Fragment 是否已附加和可用也可能取决于设备布局或大小。如果您绝对确定您的 Fragments 将同时附加到您的活动并可用,那么我想您可以直接沟通。

    话虽如此,片段应该是合乎逻辑的、独立的单元。来自文档:

    You can think of a fragment as a modular section of an activity
    

    如果片段直接相互影响,就会破坏模型。

    为什么不在你的Activity中定义一个接口,让Fragment A调用Activity中的方法呢?然后你的 Activity 可以检查 Fragment B 是否可用,然后可以在 Fragment B 中调用相应的函数。

    Here 是文档建议

    【讨论】:

      【解决方案2】:

      Fragment 只是一个 UI 组件,它的功能远不止绘制本身。在这个问题的范围内,它与视图没有什么不同。

      所以一个非常相似的问题是:为什么两个 View 不能直接相互通信?

      【讨论】:

        猜你喜欢
        • 2013-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-11
        • 1970-01-01
        相关资源
        最近更新 更多