8

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

4

2 回答 2

9

好吧,对于 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 中的相应函数。

是文档建议

于 2012-07-20T06:25:42.987 回答
2

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

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

于 2012-07-20T06:35:19.107 回答