gpt4 book ai didi

android - 在具有两个(或多个) fragment 的单个 Activity 上实现 MVP

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:49 24 4
gpt4 key购买 nike

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

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

一直在寻找具有实现 MVP 的多个 fragment 的单个 Activity 的示例,但还找不到类似的东西。

(是的,可以用其他方式完成,但该应用的目的是学习在具有多个 fragment 的单个 Activity 上实现 MVP)

感谢任何帮助!谢谢!

最佳答案

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

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

我之所以选择此解决方案,是因为它的抽象级别以及以后无需更改任何代码即可在其他 Activity 中重用任何 fragment 的能力。

解决原则:

  • 每个 fragment 都有一个由接口(interface)定义的呈现器。
  • 有一个较大的演示器实现所有较小的演示器。
  • 较大的演示者持有对所有较小演示者的引用,当调用方法时,它只是将操作委托(delegate)给相关演示者。
  • fragment 被赋予“大”演示者作为他们的演示者,而实际上并没有意识到这种情况。
  • 较小的演示者应该持有对 View 的引用。

来自 Google 的 github 页面的图表:

solution diagram from the github project


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

关于android - 在具有两个(或多个) fragment 的单个 Activity 上实现 MVP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46431894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com