【问题标题】:Is Flutter capable of dynamically loading and building widgets during runtime?Flutter 是否能够在运行时动态加载和构建小部件?
【发布时间】:2020-01-07 16:42:08
【问题描述】:

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

【问题讨论】:

  • 这些小部件的构建时间取决于什么因素?
  • 我不确定你是指构建时间还是解析时间,但无论哪种方式,技术都比较新,我真的没有足够的信息,希望飞镖团队的人能回答这个问题

标签: flutter dart flutter-layout


【解决方案1】:

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

另一方面,小部件树是在运行时创建的,小部件本质上是可组合的。所以完全有可能做一个函数将一些数据反序列化成一个小部件树。

例如,我们可以将一个小部件树编写为 xml/yaml/whatever 之类的:

type: Row
children:
  - type: Container
    color: red
    child:
      - type: Text
        0: hello world

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

Row(
  children: [
    Container(
      color: Colors.red,
      child: Text('hello world'),
    ),
  ],
),

【讨论】:

  • 您能详细说明一下吗?
  • 你还想要什么?
  • 没办法。这种方法实施起来太繁琐了。这远远超出了 SO 答案的范围
  • 响应正确(您不能动态加载 dart 文件或创建新类),但该建议不合适,因为这适用于在编译时已在导入包中定义的小部件(不是完全是所提出的问题旨在解决的问题)。动态加载包的可能性肯定会在未来成为这种语言的补充,至少如果他们想进入桌面操作系统世界,因为在当前状态下不可能考虑启用“插件”的应用程序。现在快速无代码新手移动聚焦语言。
猜你喜欢
  • 2017-10-19
  • 2020-06-09
  • 2020-08-22
  • 2020-05-12
  • 1970-01-01
  • 2019-10-18
  • 1970-01-01
  • 2020-12-30
  • 2019-08-24
相关资源
最近更新 更多