使用两个(或多个)片段在单个活动上实现MVP

mgR*_*mgR 5 android android-fragments android-mvp android-architecture

我正在开发一个显示列表的小应用程序,当单击某个项目时,它会打开一个包含项目详细信息的辅助屏幕.我想实现MVP作为我的应用程序的架构,当我有一个包含2个片段的单个活动时,我一直在努力弄清楚如何做到这一点.

有些问题出现了,当点击列表中的项目时,会向第一个演示者发送回调,但此时,谁负责打开第二个片段?让主持人"互相交谈"?我应该通过活动吗?

一直在寻找具有实现MVP的多个片段的单个活动的示例,但是还找不到类似的东西.

(是的,它可以以其他方式完成,但应用程序的目的是学习在具有多个片段的单个活动上实施MVP)

感谢任何帮助!谢谢!

mgR*_*mgR 1

在研究了不同的现有 MVP 示例项目后,我决定遵循 Google 的“TODO-MVP-TABLET”git 项目中的大部分概念,该项目可以在此处找到:

https://github.com/googlesamples/android-architecture/tree/dev-todo-mvp-tablet

我选择此解决方案是因为抽象级别以及稍后在其他活动中重用任何片段而无需更改任何代码的能力。

解决原则:

  • 每个片段都有一个由接口定义的呈现器。
  • 有一个较大的演示者执行所有较小的演示者。
  • 较大的演示者保存对所有较小演示者的引用,并且当调用方法时,它只是将操作委托给相关的演示者。
  • 片段被赋予“大”演示者作为它们的演示者,而实际上并没有意识到这种情况。
  • 较小的演示者应该保留对视图的引用。

图表取自 Google 的 github 页面:

来自github项目的解决方案图


更新:链接无效,似乎 Google 从其示例中删除了该项目。会留下它,以防他们重新上传。