Flutter 是否能够在运行时动态加载和构建小部件?

Son*_*low 1 dart flutter flutter-layout

有没有什么方法可以让我在某个服务器上存储多个 dart 文件并在运行时检索这些文件中的任何一个,从而使 Flutter 能够从它收到的文件中构建一个特定的小部件?

Rém*_*let 5

您不能动态加载 dart 文件或创建新类,不。

另一方面,小部件树是在运行时创建的,小部件本质上是可组合的。因此,完全有可能制作一个将某些数据反序列化为小部件树的函数。

例如,我们可以将小部件树编写为 xml/yaml/任何类似的东西:

type: Row
children:
  - type: Container
    color: red
    child:
      - type: Text
        0: hello world
Run Code Online (Sandbox Code Playgroud)

并有一个函数将其反序列化为:

type: Row
children:
  - type: Container
    color: red
    child:
      - type: Text
        0: hello world
Run Code Online (Sandbox Code Playgroud)

  • 决不。这种方法太繁琐,难以实施。这远远超出了 SO 答案的范围 (2认同)
  • 响应是正确的(您无法动态加载 dart 文件或创建新类),但该建议不合适,因为这适用于编译时已在导入包中定义的小部件(根本不是所问问题的目的)解决)。动态加载包的可能性肯定会在未来成为这种语言的补充,至少如果他们想进入桌面操作系统世界,因为在当前状态下不可能考虑启用“插件”的应用程序。目前快速无代码新手移动焦点语言。 (2认同)