【发布时间】:2012-07-20 06:05:55
【问题描述】:
在developer.android.com上学习android Fragment时,指定不推荐两个Fragment之间直接通信。我想知道两个Fragment之间通信失败的后果和情况?
【问题讨论】:
在developer.android.com上学习android Fragment时,指定不推荐两个Fragment之间直接通信。我想知道两个Fragment之间通信失败的后果和情况?
【问题讨论】:
嗯,对于 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 是文档建议
【讨论】:
Fragment 只是一个 UI 组件,它的功能远不止绘制本身。在这个问题的范围内,它与视图没有什么不同。
所以一个非常相似的问题是:为什么两个 View 不能直接相互通信?
【讨论】: