39

Android 开发者网站上有一篇很棒的文章,介绍了如何使用接口进行通信:

  1. AFragment及其托管Activity
  2. 两台Fragment同台Activity

我正在努力将这个概念应用于嵌套片段。特别是,getActivity()还是Fragment#onAttach(Activity)告诉你什么Activity是托管一个Fragment.

嵌套片段的等价物是什么?“孩子”如何Fragment知道Fragment它包含在哪个“父母”中?在不知道这一点的情况下,孩子如何Fragment将事件传递给其父母Fragment

一个明显的方法是从孩子广播意图Fragment并让父母Fragment收听广播,但我宁愿使用interface基于 - 的方法。

4

1 回答 1

60

事实证明,引入了一个getParentFragment()方法来满足嵌套片段的需求。它在android.app.FragmentAPI 17 中可用,但可以在旧版本上使用android.support.v4.app.Fragment.

我不敢相信我忽略了这个 API!

编辑:

我遇到了这个要点,它使弄清楚父组件(无论是Fragment还是Activity)的过程变得简单、优雅和安全!

于 2013-02-12T12:17:32.967 回答