【问题标题】:Flutter - multiple files for screens?Flutter - 屏幕的多个文件?
【发布时间】:2018-12-14 16:05:02
【问题描述】:

我目前正在学习 Flutter 开发(以及 Dart)。这是我的第一个移动编程语言。

我很好奇 - 有没有办法将屏幕分割成 .dart 文件,或者它们都必须在同一个 main.dart 文件中?

我正在构建的应用程序会有很多页面,所以我不想制作一个包含 20 多个不同页面的巨大 main.dart 文件。

如果我正在尝试制作这样的大型应用程序,Flutter 是正确的选择吗?

【问题讨论】:

  • 我只是想知道为什么你认为 Flutter 不能处理你的应用程序,以及为什么任何其他平台都可以,因为 Flutter 是为构建跨平台应用程序而构建的,并且提供与本机相同的性能代码并支持 60 fps、热重载等,flutter 的设计考虑到无论 UI 多么复杂,它都应该能够在 Flutter 中构建

标签: flutter


【解决方案1】:

您可以根据需要将代码拆分为多个文件。鼓励在lib/main.dart 中包含尽可能少的代码,并将所有其他代码拆分为不同的文件。唯一的限制是一个文件(库)中的代码不能访问其他文件的私有成员。

请参阅How to reference another file in Dart? 了解如何导入其他 Dart 文件。

【讨论】:

  • 但是如何将 1 个屏幕布局分离到单独的 dart 文件中。我有 1 个带有 5 个选项卡的复杂屏幕。所以我想将每个选项卡分成另一个 dart 文件。这 5 个文件是否需要是一个类并且已经构建并返回一个脚手架?
  • 我不知道细节,但通常你会将 UI 的一部分设为小部件,然后将小部件移动到不同的 dart 文件中,并将它们从那里导入到使用它们的位置(添加到父级)。您可以在一个文件中包含多个小部件。您不能将单个类拆分为多个文件。您还可以将build() 重构为函数并将函数移动到不同的文件,但不鼓励这样做。细粒度的小部件是 Flutter 的更好方法。 stackoverflow.com/questions/51689435/…
  • 事实上它可以工作......就像你说的那样,只需将它作为小部件并将其移动到不同的 dart 文件中。所以在这个新的 dart 文件中,我使用 Class 而不是函数,它可以是无状态的或有状态的,并且在 build(BuildContext context) 上直接返回像 Container 这样的 Widget ......不要再使用 Scaffold 了。这就是为什么我的代码第一次没有工作的原因。
猜你喜欢
  • 2021-01-29
  • 2022-07-07
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2021-12-18
  • 1970-01-01
  • 2021-10-24
相关资源
最近更新 更多