片段应该是独立的吗?

时间:2016-06-11 10:20:28

标签: java android android-fragments android-activity mvvm

我正在Android中编写一个应用程序,其中主要活动包含一个导航抽屉,它在几个不同的视图之间切换(以各种方式显示数据)。每个视图都是一个片段。

我选择的架构就像MVVM一样 - 我为每个活动都有视图模型,它包含特定视图的逻辑并提供模型。视图仅负责显示模型和处理用户交互。

现在,我想知道片段是否应该是独立的对象?在术语中:它们是否应仅作为由一些视觉控制组成的复合视图并从主要活动进行管理?或者他们应该有自己的视图模型,整个逻辑和主要活动应该只处理显示和隐藏它们吗?

独立片段的优点是:更好的SRR(否则我必须在main活动的viewmodel中实现所有片段的逻辑),更简单的实现(活动不必将模型传递给每个片段,可能{{1}通过它们检查,哪一个是活动的)和可重用性(我可以很容易地将片段放在另一个旁边,它们将正常工作)。我认为,在我看到的例子中,我没有看到这样的架构。通常是主要活动switch的片段并将数据放在那里。

这种问题的常见解决方案是什么?

1 个答案:

答案 0 :(得分:2)

片段应具有自己的整体逻辑,并且完全独立于活动,因此您可以在其他活动中轻松地重复使用它们。

如果您希望片段与父活动(也称为容器)通信,则可以使用接口。

告诉我您是否需要示例代码或者您只是在寻找一些信息:)