片段将所有导航控件委托给Activity是一个好主意吗?

美洲虎

Android开发人员指南的启发,我正在尝试编写代码,其中所有片段都是独立的(就网络/逻辑而言),而它们执行的任何操作(单击/点击)应导致启动新的活动/片段,委托给活动(通过回调)。

首先,这似乎是正确的。但是现在,当我的片段中包含多个这样的小部件(需要该片段才能导航到新屏幕)时,看起来就像一团糟。我要么需要编写多个回调,要么在Activity中针对片段上执行的不同操作执行一些切换用例逻辑。

如果此设计听起来很糟糕,那么在什么情况下实现回调(如指南所建议)将是一个好主意?

常用软件

我不知道您如何实现这些回调。

解决此问题的一种方法是使用合同模式:

  • 该片段定义了一个Contract接口,任何托管活动都必须实现

  • 当片段想要将控制权传递给活动时,它将在该接口上调用一个方法

杰克·沃顿(Jake Wharton)在GitHub gist中具有规范的实现唯一未显示的部分是承载其MyCoolFragment实现MyCoolFragment.Contract接口需求的活动

假设每个片段都有引发事件的不同事件,因此需要自己的接口。如果您有多个具有共同特征的片段,则可以在单个接口上进行标准化,而不必在Contract各处重复

还有其他方法(例如,对要点的评论建议使用消息总线),但是对于简单的fragment-> activity通信,无论在编码还是在运行时实现方面,协定模式都应具有最小的开销。

但是,将工作委派给可能会导致更改另一个片段的活动的一般方法绝对是个好方法。当您处理不同的屏幕设置(电话与平板电脑,单屏与在连接的设备上显示内容)时,它可以更轻松地处理碎片不在同一时间出现在屏幕上(可能由不同的活动托管)的情况。电视等)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

片段将所有导航控件委派给Activity是一个好主意吗?

来自分类Dev

将所有帮助程序类合并到一个巨大的类中是一个好主意吗?

来自分类Dev

将所有与数据库相关的方法都放在一个类中是一个好主意吗?

来自分类Dev

对不同的控件使用与事件相同的功能不是一个好主意吗?

来自分类Dev

将数据作为键存储在具有空/空值的HashMap中是一个好主意吗?

来自分类Dev

将Any用作Union类型是一个好主意吗?

来自分类Dev

将实例传递给__init__。这是一个好主意吗?

来自分类Dev

将“ screen -r”放在我的.bashrc中是一个好主意吗?

来自分类Dev

提取大量String文字是一个好主意吗?

来自分类Dev

组合实例VBO是一个好主意吗?

来自分类Dev

一个好主意是为此使用复合模式吗?

来自分类Dev

使用NTFS压缩是一个好主意吗?

来自分类Dev

绑定PasswordBox密码不是一个好主意吗?

来自分类Dev

组合实例VBO是一个好主意吗?

来自分类Dev

别名cd推送-这是一个好主意吗?

来自分类Dev

一个好主意是为此使用复合模式吗?

来自分类Dev

临时扩展Java中的现有对象-这是一个好主意吗?

来自分类Dev

Javacard安全性设计:所有智能卡都具有相同的公钥和私钥是一个好主意吗?

来自分类Dev

将加密的密码密钥存储在另一个表中是一个好主意吗?

来自分类Dev

将原始指针及其拥有的shared_ptr一起缓存以提高访问性能是一个好主意吗?

来自分类Dev

我可以将循环缓冲区减小到“ 1”吗?这是一个好主意吗?

来自分类Dev

我可以将循环缓冲区减小到“ 1”吗?这是一个好主意吗?

来自分类Dev

将两个路由器相互连接是一个好主意吗?

来自分类Dev

将数组存储为字段值或将数组值存储为记录是一个好主意吗?

来自分类Dev

使用Android Studio(和Gradle)将.idea / libraries添加到.gitignore是一个好主意吗?

来自分类常见问题

将您的favicon.ico文件放在非根目录下不是一个好主意吗?

来自分类Dev

通过将布尔值转换为数组来减小JSON大小是一个好主意吗?

来自分类Dev

将操作系统安装在固态驱动器上是一个好主意吗?

来自分类Dev

将带有标签的整个xml文件(.xml)文档存储在mongodb中是一个好主意吗?

Related 相关文章

  1. 1

    片段将所有导航控件委派给Activity是一个好主意吗?

  2. 2

    将所有帮助程序类合并到一个巨大的类中是一个好主意吗?

  3. 3

    将所有与数据库相关的方法都放在一个类中是一个好主意吗?

  4. 4

    对不同的控件使用与事件相同的功能不是一个好主意吗?

  5. 5

    将数据作为键存储在具有空/空值的HashMap中是一个好主意吗?

  6. 6

    将Any用作Union类型是一个好主意吗?

  7. 7

    将实例传递给__init__。这是一个好主意吗?

  8. 8

    将“ screen -r”放在我的.bashrc中是一个好主意吗?

  9. 9

    提取大量String文字是一个好主意吗?

  10. 10

    组合实例VBO是一个好主意吗?

  11. 11

    一个好主意是为此使用复合模式吗?

  12. 12

    使用NTFS压缩是一个好主意吗?

  13. 13

    绑定PasswordBox密码不是一个好主意吗?

  14. 14

    组合实例VBO是一个好主意吗?

  15. 15

    别名cd推送-这是一个好主意吗?

  16. 16

    一个好主意是为此使用复合模式吗?

  17. 17

    临时扩展Java中的现有对象-这是一个好主意吗?

  18. 18

    Javacard安全性设计:所有智能卡都具有相同的公钥和私钥是一个好主意吗?

  19. 19

    将加密的密码密钥存储在另一个表中是一个好主意吗?

  20. 20

    将原始指针及其拥有的shared_ptr一起缓存以提高访问性能是一个好主意吗?

  21. 21

    我可以将循环缓冲区减小到“ 1”吗?这是一个好主意吗?

  22. 22

    我可以将循环缓冲区减小到“ 1”吗?这是一个好主意吗?

  23. 23

    将两个路由器相互连接是一个好主意吗?

  24. 24

    将数组存储为字段值或将数组值存储为记录是一个好主意吗?

  25. 25

    使用Android Studio(和Gradle)将.idea / libraries添加到.gitignore是一个好主意吗?

  26. 26

    将您的favicon.ico文件放在非根目录下不是一个好主意吗?

  27. 27

    通过将布尔值转换为数组来减小JSON大小是一个好主意吗?

  28. 28

    将操作系统安装在固态驱动器上是一个好主意吗?

  29. 29

    将带有标签的整个xml文件(.xml)文档存储在mongodb中是一个好主意吗?

热门标签

归档