Android:在 fragment 交换方面如何保持 MVC 模式?

标签 android android-fragments model-view-controller

默认情况下,Android 并未设计为支持 MVC 模式。然而,可以在一定程度上通过这种模式组织代码。

我让我的 Activity 尽可能小,并将所有显示内容移动到实际继承自 View 的类中。现在我想要一个 View 来交换它的子部分。

我在文档中找到的交换子部分的技术是通过使用 fragment 和 FragmentTransaction 完成的。这会将 Controller 部分绘制到我的 View 类中。

有没有人达到同样的目的并找到了一个令人满意的解决方案来让 Controller 远离 View ?

最佳答案

简而言之,我得出的答案是,如果您想通过干净的 MVC 模式组织代码,请不要使用 fragment 。他们只是将 Controller 混合到 View 中。有其他方法可以交换 View 的各个部分。

如果您真的非常需要它们,您应该将它们归类为 View 的一部分,就像您可以使用小型 View 模型一样,并尽可能限制它们的工作。

较长的答案是,如果你真的想应用 MVC 模式,你应该考虑。安卓不是这样设计的。 fragment 可能非常有用。如果您不能利用 Android 的全部功能,最好换成 MVC 模式。

Android 基本上具有模型和 View 的两层架构,其中 View 还包含混合在其中的所有 Controller 功能。

关于Android:在 fragment 交换方面如何保持 MVC 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48974174/

相关文章:

java - MVC( Model View Controller );请解释一下这个方法

oop - 如何在 UML 中正确建模 MVC 类图?

javascript - 自定义组件的关注点分离?

android - java.lang.IllegalStateException : Can not perform this action after onSaveInstanceState, FragmentTabHost 问题

java - 如何从 Android Studio 中的 fragment 类更改 ActionBar 标题?

android - 更改 fragment 的外观

android - 如何调试 SEGV_ACCERR

android - 如何在显示 android 键盘时隐藏某些 View ?

Android MotionLayout autoTransition 在 beta7 中不起作用

android - 如何在Android中获取#define的值