在具有两个(或多个)片段的单个活动上实现 MVP

2024-01-11

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

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

一直在寻找具有多个片段实现 MVP 的单个活动的示例,但尚未找到类似的东西。

(是的,也可以这样做,但该应用程序的目的是学习在具有多个片段的单个活动上实现 MVP)

感谢任何帮助! 谢谢!


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

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

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

解决原则:

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

图表取自 Google 的 github 页面:


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在具有两个(或多个)片段的单个活动上实现 MVP 的相关文章

随机推荐