应用于嵌套片段的片段间通信?

时间:2013-02-12 11:39:46

标签: android android-fragments

Android开发者网站有一个关于如何使用接口进行通信的great article

  1. Fragment及其托管Activity
  2. 由同一Fragment
  3. 托管的两个Activity

    我正在努力将此概念应用于嵌套片段。特别是,getActivity()Fragment#onAttach(Activity)会告诉您Activity正在托管Fragment的内容。

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

    一种显而易见的方法是播放来自孩子Fragment的意图并让父母Fragment收听广播,但我宁愿使用基于interface的方法。

1 个答案:

答案 0 :(得分:60)

事实证明,为了迎合嵌套片段,引入了getParentFragment()方法。它可以从API 17的android.app.Fragment获得,但可以使用android.support.v4.app.Fragment在旧版本上使用。

我无法相信我忽略了这个API!

编辑:

我遇到了this gist,这使得我们可以轻松,优雅,安全地找出父组件(FragmentActivity)的过程!