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

cur*_*zen 39 android android-fragments

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

  1. A Fragment和它的托管Activity
  2. 两个Fragment由同一个主持Activity

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

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

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

cur*_*zen 60

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

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

编辑:

我碰上了这个要点,使搞清楚父组件的过程(无论是FragmentActivity)方便,美观,安全!

  • 是的,getParentFragment()是一个片段在另一个片段内的方式.如果你想在相同的嵌套级别上创建片段(即获得2个子片段以便相互通信),请使用getTargetFragment()和setTargetFragment() (9认同)