Flutter:哪些 Material Widget 可在 iOS 上运行?

rgi*_*isi 4 flutter flutter-widget flutter-ios

有谁知道:我可以完全使用 Flutter 的 Material Widgets 构建 iOS 应用程序吗?或者是否存在任何功能问题?是否有任何有关 Material Widgets 在 iOS 上运行的文档?

(我不是在这里谈论设计/用户体验影响......)

谢谢!

Edu*_*tal 8

所有 Material 小部件或 Cupertino 小部件都可以在两个平台上工作(iOS 和 Android,如果您想尝试 Flutter beta,也可以在网络上工作),并且它们都根据平台更改其 UX 行为(就像滚动的物理方式一样)拉动时的视图或顶部导航栏的外观)。

Flutter 就像画布一样绘制所有内容,因此 UI 不依赖于目标平台。

但是,如果您开始将 Material 与 Cupertino 混合,您将会遇到问题,因为有一些 Widget(例如 Scaffold)只需要 Material 小部件。

看了小部件的源代码你就知道我说的是真的。在脚手架(材质小部件)中,基于平台的行为发生了变化:https://github.com/flutter/flutter/blob/1ba4f1f509202f3d2ec16f053edcbe2df6b7107e/packages/flutter/lib/src/material/scaffold.dart#L2481

在这里,您可以在前 15 秒内看到 Flutter 团队成员表示该材质在 iOS 和 Android 中均适用,并且同样适用于库比蒂诺。使用 Cupertino 或 Material 构建多平台应用程序没有任何限制。这些是Flutter的一些优点,屏幕上的所有内容都是由Flutter逐像素绘制的。

  • @BenjaminLee Material 是一个与 Flutter 没有直接关系的项目,它有自己的库可与 iOS、Android 和 Web 一起使用(这些库必须与本地语言一起使用:swift、Java/Kotlin、Swift/ObjC)。除了这些平台之外,还有 Material Flutter 库(不与本机代码一起使用)。因此,在这种情况下,Material Flutter 库支持该组件,但 Swift/Obj-C 版本 (https://github.com/material-components/material-components-ios) 不支持。因此,借助 Flutter,您可以在 iOS、Web、macOS、Linux 和 Windows 平台中使用任何 Material 部件。 (2认同)