【问题标题】:Should fragment be standalone?片段应该是独立的吗?
【发布时间】:2016-06-11 10:20:28
【问题描述】:

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

我选择的架构类似于 MVVM - 我为每个活动都有视图模型,其中包含特定视图的逻辑并提供模型。视图只负责显示模型和处理用户交互。

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

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

此类问题的常见解决方案是什么?

【问题讨论】:

  • 我承认,如果没有 任何 示例代码来了解您在说什么,这有点模糊,但我认为如此强烈地投票有点极端。
  • 我从来没有看到在此类问题中包含源代码的意义,因为它涉及一般应用程序架构而不是特定问题。然而,亚历山大设法理解了我在问什么。我很高兴听到所有反对这个问题的人。
  • 我不知道,我投了赞成票 - 如果没有示例代码,我只是看不透它,但话又说回来,那是因为我对 MVVM 并不深入 :)

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


【解决方案1】:

一个片段应该有他自己的整体逻辑,并且完全独立于活动,这样你就可以在其他活动中轻松地重用它们。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    相关资源
    最近更新 更多