Ant*_*sto 6 java android modularity interface android-fragments
我Activity A主持两个主要Fragment F1 and F2.无论F1和F2嵌套Fragment,每个都有自己的Listener接口进行数据交换.
根据我从这个问题的答案中理解,活动A:
需要知道由F1和托管的片段声明的每个单独的接口F2
需要路线在由片段生成的事件F1和F2以正确的主要片段,F1或F2.
如果我理解正确的,存在这种方法不模块化:活动需要了解两个它承载(片段一切F1和F2),并嵌套在碎片F1和F2.
我对么?当然,我很困惑......
如果你看一下Communicating with Other Fragments教程,它会说:
所有Fragment-to-Fragment通信都是通过相关的Activity完成的.两个碎片永远不应该直接通信.
原因是Fragments是流畅的和动态的UI组件,可能会淡入和淡出视图.只有托管Activity才能确定是否Fragment已将UI添加到UI或已从中分离.
如果我理解正确的,存在这种方法不模块化:活动需要了解两个它承载(片段一切
F1和F2),并嵌套在碎片F1和F2.
该Fragments为"模块化"在这个意义上,他们是完全独立的和可重复使用的UI块.此外,它们是"模块化的",因为它们的接口定义明确并由主机明确实现Activity.Fragment放入其中的任何地方,如果Activity实现了在其中定义的回调接口Fragment,则Activity"选择"要做什么,具体取决于是否Fragment添加/附加到UI.
如果我们松散的应用MVC思维这里,托管的方式Activity充当controller各种各样的两者之间views哪个是Fragment秒.当然,这只是一个简单的比喻,但希望你能得到它.
进一步考虑:
这种方法有一种替代方法:一种称为getParentFragment()嵌套的方法Fragment可以用来获取对"外部"的引用Fragment.
参考文献:
1. 为什么不推荐片段之间的直接通信?.
2. 与其他片段或活动进行交流.
3. 片段问题:片段间通信?.