最佳做法是在运行时在网格和列表布局之间切换
Best practice so switch between a grid and list layout at runtime
我目前正在做一个项目,我希望用户能够在运行时在两种布局(列表和网格)之间进行选择。我在 UI5 文档(示例应用程序)和 GitHub 上搜索示例,但没有找到有关如何执行此操作的示例或最佳实践示例。所以我考虑了如何实现这种行为并有多种想法,但不知何故 none 感觉这样做是最佳实践。
想法 1 - 销毁 "old" 控件并在 Controller 内生成新控件
我的第一个想法是销毁我不再需要的控件。例如,如果用户想要切换到网格布局,则列表和与其相关的每个控件都会被销毁。在控制器中创建所需的网格控件,然后在视图中呈现。在我看来,这会混淆控制器内部的视图和控制器逻辑,并且感觉不是最佳实践
想法 2 - 创建两个视图并在它们之间切换
我的第二个想法是创建两个视图,每个视图用于我需要的布局并在它们之间切换。这将意味着控制器和视图中的大量代码复制。感觉这不是正确的方法。
因此,如果您对此有自己的经验,或者是否确实存在针对此类行为的最佳实践,我将非常高兴。
谢谢您和亲切的问候!
我会说,想法2是因为以下原因:
最佳做法是根据 MVC 方法 工作,这意味着分离逻辑、视图和数据。由于控件定义了您的视图,因此最好在用于它的文件(XML 视图)中实例化您的控件。
性能:销毁所有控件意味着如果用户决定在视图之间切换,控件必须re-instantiated由控制器每隔时间。这是,即使您可能不会注意到它,但性能不佳。
不需要代码复制:代码复制的说法不一定正确。如果您可以在列表和 grid-view 中执行相同的操作,只需 link 控制器到两个视图就足够了,在这种情况下,您几乎不必复制任何代码。只需确保将逻辑拆分为足够多的函数即可。这样您可能需要编写一些额外的 public 函数来处理事件,但不会更多。
我目前正在做一个项目,我希望用户能够在运行时在两种布局(列表和网格)之间进行选择。我在 UI5 文档(示例应用程序)和 GitHub 上搜索示例,但没有找到有关如何执行此操作的示例或最佳实践示例。所以我考虑了如何实现这种行为并有多种想法,但不知何故 none 感觉这样做是最佳实践。
想法 1 - 销毁 "old" 控件并在 Controller 内生成新控件 我的第一个想法是销毁我不再需要的控件。例如,如果用户想要切换到网格布局,则列表和与其相关的每个控件都会被销毁。在控制器中创建所需的网格控件,然后在视图中呈现。在我看来,这会混淆控制器内部的视图和控制器逻辑,并且感觉不是最佳实践
想法 2 - 创建两个视图并在它们之间切换 我的第二个想法是创建两个视图,每个视图用于我需要的布局并在它们之间切换。这将意味着控制器和视图中的大量代码复制。感觉这不是正确的方法。
因此,如果您对此有自己的经验,或者是否确实存在针对此类行为的最佳实践,我将非常高兴。
谢谢您和亲切的问候!
我会说,想法2是因为以下原因:
最佳做法是根据 MVC 方法 工作,这意味着分离逻辑、视图和数据。由于控件定义了您的视图,因此最好在用于它的文件(XML 视图)中实例化您的控件。
性能:销毁所有控件意味着如果用户决定在视图之间切换,控件必须re-instantiated由控制器每隔时间。这是,即使您可能不会注意到它,但性能不佳。
不需要代码复制:代码复制的说法不一定正确。如果您可以在列表和 grid-view 中执行相同的操作,只需 link 控制器到两个视图就足够了,在这种情况下,您几乎不必复制任何代码。只需确保将逻辑拆分为足够多的函数即可。这样您可能需要编写一些额外的 public 函数来处理事件,但不会更多。